Function at 0x4c6d70
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x3c]
mov edx, 1
mov eax, dword [edi + 0x74]
mov ecx, dword [edi + 0x7c]
mov ebp, dword [edi + 0x68]
mov ebx, dword [edi + 4]
mov esi, dword [edi + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x78]
add eax, 0xc
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ebp
lea ecx, [eax + ecx*4]
mov eax, dword [edi]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x40]
shl edx, cl
mov ecx, edx
sar ecx, 1
or ecx, edx
xor edx, edx
test dword [edi + 0x80], 0xfffffffc
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], edx
jbe 0x4c88e8
mov ecx, dword [esp + 0x20]
lea ebp, [ecx + ecx*2]
shl ebp, 2
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x14]
jmp 0x4c6df4
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], 0
test ecx, ecx
je 0x4c88b9
mov ecx, dword [ebp]
mov dword [esp + 0x40], ecx
test ecx, ecx
jne 0x4c7c47
mov edx, dword [edi + 0x60]
lea ecx, [edi + 0x60]
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c6ea4
cmp ebx, ebp
mov ebx, ebp
jae 0x4c6e38
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c6e4b
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c6e92
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c6e85
cmp edx, 0x8f
jbe 0x4c6e76
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c6e8d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c6e92
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c6e51
jmp 0x4c6f2b
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c6f28
cmp ebx, ebp
jae 0x4c6ecc
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x24]
jmp 0x4c6ed2
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c6f19
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c6f0c
cmp edx, 0x8f
jbe 0x4c6efd
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c6f14
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c6f19
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c6ed8
jmp 0x4c6f2b
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c888a
mov edx, dword [edi + 0x64]
lea ecx, [edi + 0x64]
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c6fc4
cmp ebx, ebp
mov ebx, ebp
jae 0x4c6f5c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c6f6b
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c6fb2
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c6fa5
cmp edx, 0x8f
jbe 0x4c6f96
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c6fad
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c6fb2
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c6f71
jmp 0x4c704f
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c7048
cmp ebx, ebp
jae 0x4c6fe8
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c6ff2
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c7039
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c702c
cmp edx, 0x8f
jbe 0x4c701d
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7034
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7039
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c6ff8
jmp 0x4c704f
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c70e3
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7074
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7087
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
lea ecx, [ecx]
test esi, esi
jne 0x4c70d1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c70c4
cmp edx, 0x8f
jbe 0x4c70b5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c70cc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c70d1
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7090
jmp 0x4c716a
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c7167
cmp ebx, ebp
jae 0x4c710b
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
jmp 0x4c7111
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c7158
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c714b
cmp edx, 0x8f
jbe 0x4c713c
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7153
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7158
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7117
jmp 0x4c716a
mov ebp, dword [edx + 4]
mov ecx, dword [esp + 0x24]
add ecx, ecx
or ecx, ebp
cmp ecx, 3
ja case.default.0x4c717b
jmp dword [ecx*4 + 0x4c8984]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x80000
and edx, 0x20000
or edx, ecx
shr edx, 0x11
mov dword [esp + 0x2c], edx
movzx ecx, byte [edx + 0x550150]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x24], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c7247
cmp ebx, ebp
mov ebx, ebp
jae 0x4c71db
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov dword [esp + 0x40], ebp
jmp 0x4c71ea
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x40], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
test esi, esi
jne 0x4c7231
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7224
cmp edx, 0x8f
jbe 0x4c7215
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c722c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7231
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c71f0
mov edx, dword [esp + 0x40]
jmp 0x4c72d7
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c72d4
cmp ebx, ebp
jae 0x4c726f
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x40], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c7279
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov dword [esp + 0x40], ebp
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
nop
test esi, esi
jne 0x4c72c1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c72b4
cmp edx, 0x8f
jbe 0x4c72a5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c72bc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c72c1
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7280
mov edx, dword [esp + 0x40]
jmp 0x4c72d7
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c72ec
neg ecx
mov ebp, dword [esp + 0x1c]
shl edx, 0x13
or edx, 0x10
mov dword [esp + 0x40], edx
mov dword [ebp], ecx
mov ecx, dword [esp + 0x14]
shr edx, 3
and edx, 0x1ef
or dword [ecx - 4], 0x20
or dword [ecx + 4], 8
mov ecx, dword [edi + 0x6c]
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x24], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c73b3
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7345
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7358
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
mov edi, edi
test esi, esi
jne 0x4c73a1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7394
cmp edx, 0x8f
jbe 0x4c7385
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c739c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c73a1
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7360
jmp 0x4c7443
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c7440
cmp ebx, ebp
jae 0x4c73df
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
jmp 0x4c73e5
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
jmp 0x4c73f0
test esi, esi
jne 0x4c7431
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7424
cmp edx, 0x8f
jbe 0x4c7415
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c742c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7431
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c73f0
jmp 0x4c7443
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c7610
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x400000
and edx, 0x100000
or edx, ecx
mov ecx, ebp
and ecx, 0x2000000
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x80000
shr edx, 4
or edx, ecx
and ebp, 0x550
shr edx, 0xc
or edx, ebp
shr edx, 3
mov dword [esp + 0x2c], edx
movzx ecx, byte [edx + 0x550150]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c7538
cmp ebx, ebp
mov ebx, ebp
jae 0x4c74cc
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c74db
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c7522
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7515
cmp edx, 0x8f
jbe 0x4c7506
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c751d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7522
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c74e1
mov edx, dword [esp + 0x24]
jmp 0x4c75c7
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c75c4
cmp ebx, ebp
jae 0x4c7560
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c756a
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c75b1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c75a4
cmp edx, 0x8f
jbe 0x4c7595
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c75ac
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c75b1
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7570
mov edx, dword [esp + 0x24]
jmp 0x4c75c7
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c75dc
neg ecx
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
shl edx, 0x16
or edx, 0x80
mov dword [ebp + edi*4], ecx
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
or ebp, edx
mov dword [esp + 0x40], ebp
or dword [ecx - 4], 0x100
or dword [ecx + 4], 0x40
jmp 0x4c7614
mov ebp, dword [esp + 0x40]
mov ecx, dword [edi + 0x6c]
mov edx, ebp
shr edx, 6
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x24], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c76c3
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7652
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7665
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
jmp 0x4c7670
test esi, esi
jne 0x4c76b1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c76a4
cmp edx, 0x8f
jbe 0x4c7695
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c76ac
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c76b1
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7670
jmp 0x4c774a
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c7747
cmp ebx, ebp
jae 0x4c76eb
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
jmp 0x4c76f1
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
test esi, esi
jne 0x4c7738
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c772b
cmp edx, 0x8f
jbe 0x4c771c
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7733
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7738
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c76f7
jmp 0x4c774a
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c791a
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x2000000
and edx, 0x800000
or edx, ecx
mov ecx, ebp
and ecx, 0x10000000
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x400000
shr edx, 4
or edx, ecx
and ebp, 0x2a80
shr edx, 0xc
or edx, ebp
shr edx, 6
mov dword [esp + 0x2c], edx
movzx ecx, byte [edx + 0x550150]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c783f
cmp ebx, ebp
mov ebx, ebp
jae 0x4c77d3
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c77e2
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c7829
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c781c
cmp edx, 0x8f
jbe 0x4c780d
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7824
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7829
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c77e8
mov edx, dword [esp + 0x24]
jmp 0x4c78ce
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c78cb
cmp ebx, ebp
jae 0x4c7867
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c7871
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c78b8
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c78ab
cmp edx, 0x8f
jbe 0x4c789c
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c78b3
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c78b8
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7877
mov edx, dword [esp + 0x24]
jmp 0x4c78ce
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c78e3
neg ecx
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
shl edx, 0x19
or edx, 0x400
mov dword [ebp + edi*8], ecx
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
or ecx, edx
mov dword [esp + 0x40], ecx
or dword [ebp - 4], 0x800
or dword [ebp + 4], 0x200
jmp 0x4c791e
mov ecx, dword [esp + 0x40]
mov edx, ecx
mov ecx, dword [edi + 0x6c]
shr edx, 9
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c79c8
cmp ebx, ebp
mov ebx, ebp
jae 0x4c795c
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c796f
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c79b6
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c79a9
cmp edx, 0x8f
jbe 0x4c799a
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c79b1
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c79b6
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7975
jmp 0x4c7a53
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c7a50
cmp ebx, ebp
jae 0x4c79f4
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
jmp 0x4c79fa
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c7a41
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7a34
cmp edx, 0x8f
jbe 0x4c7a25
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7a3c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7a41
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7a00
jmp 0x4c7a53
mov ebp, dword [edx + 4]
test ebp, ebp
je case.default.0x4c717b
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x10000000
and edx, 0x4000000
or edx, ecx
mov ecx, ebp
and ecx, 0x81ffffff
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x2000000
shr edx, 4
or edx, ecx
and ebp, 0x15400
shr edx, 0xc
or edx, ebp
shr edx, 9
mov dword [esp + 0x2c], edx
movzx ecx, byte [edx + 0x550150]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c7b48
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7adc
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c7aeb
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c7b32
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7b25
cmp edx, 0x8f
jbe 0x4c7b16
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7b2d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7b32
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7af1
mov edx, dword [esp + 0x24]
jmp 0x4c7bd7
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c7bd4
cmp ebx, ebp
jae 0x4c7b70
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c7b7a
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c7bc1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7bb4
cmp edx, 0x8f
jbe 0x4c7ba5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7bbc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7bc1
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7b80
mov edx, dword [esp + 0x24]
jmp 0x4c7bd7
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c7bec
neg ecx
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x30]
mov dword [edi + ebp], ecx
mov ecx, dword [esp + 0x14]
mov ebp, ecx
or dword [ecx - 4], 0x4000
or dword [ebp + 4], 0x1000
mov ecx, edx
mov edi, dword [esp + 0x3c]
shl ecx, 0x1c
or ecx, 0x2000
shl edx, 0x12
or dword [esp + 0x40], ecx
or edx, 2
mov ecx, dword [edi + 0x7c]
or dword [ebp + ecx*4 + 8], edx
or dword [ebp + ecx*4 + 4], 4
or dword [ebp + ecx*4 + 0xc], 1
mov ecx, dword [esp + 0x40]
and ecx, 0xb6dfffff
mov dword [ebp], ecx
jmp 0x4c888e
test ecx, 0x200010
jne 0x4c7f45
mov edx, ecx
mov ecx, dword [edi + 0x6c]
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c7cfa
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7c8e
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7ca1
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c7ce8
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7cdb
cmp edx, 0x8f
jbe 0x4c7ccc
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7ce3
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7ce8
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7ca7
jmp 0x4c7d85
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c7d82
cmp ebx, ebp
jae 0x4c7d26
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
jmp 0x4c7d2c
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c7d73
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7d66
cmp edx, 0x8f
jbe 0x4c7d57
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7d6e
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7d73
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7d32
jmp 0x4c7d85
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c7f41
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x80000
and edx, 0x20000
or edx, ecx
mov ecx, ebp
and ecx, 0x400000
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x40000
shr edx, 2
or edx, ecx
and ebp, 0xaa
shr edx, 0xe
or edx, ebp
mov dword [esp + 0x2c], edx
movzx ecx, byte [edx + 0x550150]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c7e77
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7e0b
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c7e1a
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c7e61
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7e54
cmp edx, 0x8f
jbe 0x4c7e45
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7e5c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7e61
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7e20
mov edx, dword [esp + 0x24]
jmp 0x4c7f07
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c7f04
cmp ebx, ebp
jae 0x4c7e9f
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c7ea9
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
nop
test esi, esi
jne 0x4c7ef1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7ee4
cmp edx, 0x8f
jbe 0x4c7ed5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7eec
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7ef1
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7eb0
mov edx, dword [esp + 0x24]
jmp 0x4c7f07
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c7f1c
neg ecx
mov ebp, dword [esp + 0x1c]
shl edx, 0x13
or edx, 0x10
mov dword [ebp], ecx
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
or ecx, edx
mov dword [esp + 0x40], ecx
or dword [ebp - 4], 0x20
or dword [ebp + 4], 8
jmp 0x4c7f45
mov ecx, dword [esp + 0x40]
test ecx, 0x1000080
jne 0x4c8257
mov edx, ecx
mov ecx, dword [edi + 0x6c]
shr edx, 3
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c7ffb
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7f8f
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7fa2
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c7fe9
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7fdc
cmp edx, 0x8f
jbe 0x4c7fcd
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7fe4
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7fe9
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c7fa8
jmp 0x4c8086
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c8083
cmp ebx, ebp
jae 0x4c8027
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
jmp 0x4c802d
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c8074
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8067
cmp edx, 0x8f
jbe 0x4c8058
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c806f
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8074
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c8033
jmp 0x4c8086
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c8253
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x400000
and edx, 0x100000
or edx, ecx
mov ecx, ebp
and ecx, 0x2000000
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x80000
shr edx, 4
or edx, ecx
and ebp, 0x550
shr edx, 0xc
or edx, ebp
shr edx, 3
mov dword [esp + 0x2c], edx
movzx ecx, byte [edx + 0x550150]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c817b
cmp ebx, ebp
mov ebx, ebp
jae 0x4c810f
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c811e
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c8165
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8158
cmp edx, 0x8f
jbe 0x4c8149
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c8160
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8165
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c8124
mov edx, dword [esp + 0x24]
jmp 0x4c820a
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c8207
cmp ebx, ebp
jae 0x4c81a3
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c81ad
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c81f4
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c81e7
cmp edx, 0x8f
jbe 0x4c81d8
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c81ef
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c81f4
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c81b3
mov edx, dword [esp + 0x24]
jmp 0x4c820a
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c821f
neg ecx
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
shl edx, 0x16
or edx, 0x80
mov dword [ebp + edi*4], ecx
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
or ecx, edx
mov dword [esp + 0x40], ecx
or dword [ebp - 4], 0x100
or dword [ebp + 4], 0x40
jmp 0x4c8257
mov ecx, dword [esp + 0x40]
test ecx, 0x8000400
jne 0x4c8577
mov edx, ecx
mov ecx, dword [edi + 0x6c]
shr edx, 6
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c8313
cmp ebx, ebp
mov ebx, ebp
jae 0x4c82a1
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c82b4
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
lea ebx, [ebx]
test esi, esi
jne 0x4c8301
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c82f4
cmp edx, 0x8f
jbe 0x4c82e5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c82fc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8301
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c82c0
jmp 0x4c83a3
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c83a0
cmp ebx, ebp
jae 0x4c833f
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
jmp 0x4c8345
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
jmp 0x4c8350
test esi, esi
jne 0x4c8391
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8384
cmp edx, 0x8f
jbe 0x4c8375
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c838c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8391
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c8350
jmp 0x4c83a3
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c8573
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x2000000
and edx, 0x800000
or edx, ecx
mov ecx, ebp
and ecx, 0x10000000
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x400000
shr edx, 4
or edx, ecx
and ebp, 0x2a80
shr edx, 0xc
or edx, ebp
shr edx, 6
mov dword [esp + 0x2c], edx
movzx ecx, byte [edx + 0x550150]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c8498
cmp ebx, ebp
mov ebx, ebp
jae 0x4c842c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c843b
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c8482
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8475
cmp edx, 0x8f
jbe 0x4c8466
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c847d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8482
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c8441
mov edx, dword [esp + 0x24]
jmp 0x4c8527
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c8524
cmp ebx, ebp
jae 0x4c84c0
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c84ca
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c8511
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8504
cmp edx, 0x8f
jbe 0x4c84f5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c850c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8511
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c84d0
mov edx, dword [esp + 0x24]
jmp 0x4c8527
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c853c
neg ecx
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
shl edx, 0x19
or edx, 0x400
mov dword [ebp + edi*8], ecx
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
or ecx, edx
mov dword [esp + 0x40], ecx
or dword [ebp - 4], 0x800
or dword [ebp + 4], 0x200
jmp 0x4c857b
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x14]
test ecx, 0x40002000
jne 0x4c887f
mov edx, ecx
mov ecx, dword [edi + 0x6c]
shr edx, 9
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c8633
cmp ebx, ebp
mov ebx, ebp
jae 0x4c85c5
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c85d8
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
mov edi, edi
test esi, esi
jne 0x4c8621
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8614
cmp edx, 0x8f
jbe 0x4c8605
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c861c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8621
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c85e0
jmp 0x4c86c3
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c86c0
cmp ebx, ebp
jae 0x4c865f
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x2c]
jmp 0x4c8665
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
jmp 0x4c8670
test esi, esi
jne 0x4c86b1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c86a4
cmp edx, 0x8f
jbe 0x4c8695
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c86ac
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c86b1
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c8670
jmp 0x4c86c3
mov ebp, dword [edx + 4]
test ebp, ebp
je case.default.0x4c717b
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x10000000
and edx, 0x4000000
or edx, ecx
mov ecx, ebp
and ecx, 0x81ffffff
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x2000000
shr edx, 4
or edx, ecx
and ebp, 0x15400
shr edx, 0xc
or edx, ebp
shr edx, 9
mov dword [esp + 0x2c], edx
movzx ecx, byte [edx + 0x550150]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c87b8
cmp ebx, ebp
mov ebx, ebp
jae 0x4c874c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c875b
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c87a2
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8795
cmp edx, 0x8f
jbe 0x4c8786
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c879d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c87a2
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c8761
mov edx, dword [esp + 0x24]
jmp 0x4c8847
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c8844
cmp ebx, ebp
jae 0x4c87e0
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c87ea
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c8831
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8824
cmp edx, 0x8f
jbe 0x4c8815
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c882c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8831
shl edx, 8
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 8
add ebx, ebx
add eax, eax
dec esi
cmp ebx, 0x8000
jb 0x4c87f0
mov edx, dword [esp + 0x24]
jmp 0x4c8847
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c885c
neg ecx
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x30]
mov dword [edi + ebp], ecx
mov ebp, dword [esp + 0x14]
or dword [ebp - 4], 0x4000
jmp 0x4c7c04
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
and ecx, 0xb6dfffff
mov dword [ebp], ecx
jmp 0x4c888e
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
add ebp, 4
mov ecx, dword [esp + 0x1c]
inc edx
add ecx, 4
mov dword [esp + 0x34], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ebp
cmp edx, dword [esp + 0x20]
jb 0x4c6e04
mov edx, dword [esp + 0x28]
jmp 0x4c88bd
mov ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0x30]
add edx, 4
mov dword [esp + 0x1c], ecx
add ebp, 8
mov ecx, dword [edi + 0x80]
and ecx, 0xfffffffc
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], ebp
cmp edx, ecx
jb 0x4c6df0
mov ebp, dword [esp + 0x10]
mov dword [edi + 0x68], ebp
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], esi
cmp edx, dword [edi + 0x80]
jae 0x4c897a
mov ebp, dword [esp + 0x20]
test ebp, ebp
je 0x4c897a
mov ebx, dword [esp + 0x1c]
mov ecx, ebp
mov edx, dword [esp + 0x14]
sub ebx, edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x3c], ebp
nop
mov eax, dword [edi + 0x80]
xor esi, esi
sub eax, dword [esp + 0x28]
je 0x4c8966
shl ebp, 2
add ebx, edx
push 1
push esi
push dword [esp + 0x20]
push ebx
push edx
push edi
call fcn.004c89a0
mov eax, dword [edi + 0x80]
inc esi
sub eax, dword [esp + 0x40]
add esp, 0x18
mov edx, dword [esp + 0x14]
add ebx, ebp
cmp esi, eax
jb 0x4c8933
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
and dword [edx], 0xb6dfffff
add edx, 4
dec ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x3c], ecx
jne 0x4c8920
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret