Function at 0x4c0720
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]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ebp
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x40]
shl edx, cl
add eax, 0xc
mov ecx, edx
mov dword [esp + 0x14], eax
mov eax, dword [edi]
sar ecx, 1
or ecx, edx
mov dword [esp + 0x18], ecx
xor ecx, ecx
test dword [edi + 0x80], 0xfffffffc
mov dword [esp + 0x28], ecx
jbe 0x4c22ad
mov ecx, dword [esp + 0x20]
lea edx, [ecx + ecx*2]
shl edx, 2
xor ebp, ebp
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x14]
jmp 0x4c07a4
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], 0
test ecx, ecx
je 0x4c2278
mov ebp, dword [edx]
mov dword [esp + 0x40], ebp
test ebp, ebp
jne 0x4c1617
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 0x4c0853
cmp ebx, ebp
mov ebx, ebp
jae 0x4c07e7
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c07fa
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 0x4c0841
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c0834
cmp edx, 0x8f
jbe 0x4c0825
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c083c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c0841
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 0x4c0800
jmp 0x4c08da
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c08d7
cmp ebx, ebp
jae 0x4c087b
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 0x4c0881
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c08c8
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c08bb
cmp edx, 0x8f
jbe 0x4c08ac
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c08c3
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c08c8
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 0x4c0887
jmp 0x4c08da
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c2249
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 0x4c0973
cmp ebx, ebp
mov ebx, ebp
jae 0x4c090b
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c091a
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 0x4c0961
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c0954
cmp edx, 0x8f
jbe 0x4c0945
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c095c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c0961
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 0x4c0920
jmp 0x4c09fe
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c09f7
cmp ebx, ebp
jae 0x4c0997
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c09a1
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 0x4c09e8
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c09db
cmp edx, 0x8f
jbe 0x4c09cc
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c09e3
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c09e8
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 0x4c09a7
jmp 0x4c09fe
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 0x4c0a8b
cmp ebx, ebp
mov ebx, ebp
jae 0x4c0a1f
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c0a32
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 0x4c0a79
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c0a6c
cmp edx, 0x8f
jbe 0x4c0a5d
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c0a74
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c0a79
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 0x4c0a38
jmp 0x4c0b13
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c0b10
cmp ebx, ebp
jae 0x4c0ab3
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 0x4c0ab9
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
nop
test esi, esi
jne 0x4c0b01
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c0af4
cmp edx, 0x8f
jbe 0x4c0ae5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c0afc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c0b01
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 0x4c0ac0
jmp 0x4c0b13
mov ebp, dword [edx + 4]
mov ecx, dword [esp + 0x24]
add ecx, ecx
or ecx, ebp
cmp ecx, 3
ja case.default.0x4c0b24
jmp dword [ecx*4 + 0x4c2344]
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 + 0x54b188]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x40], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c0bf3
cmp ebx, ebp
mov ebx, ebp
jae 0x4c0b80
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c0b93
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 + 0x40]
mov dword [edx], ecx
lea esp, [esp]
test esi, esi
jne 0x4c0be1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c0bd4
cmp edx, 0x8f
jbe 0x4c0bc5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c0bdc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c0be1
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 0x4c0ba0
jmp 0x4c0c7a
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c0c77
cmp ebx, ebp
jae 0x4c0c1b
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 0x4c0c21
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x40]
mov dword [edx], ecx
test esi, esi
jne 0x4c0c68
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c0c5b
cmp edx, 0x8f
jbe 0x4c0c4c
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c0c63
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c0c68
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 0x4c0c27
jmp 0x4c0c7a
mov ebp, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor ebp, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ebp
je 0x4c0c93
neg ecx
mov edx, dword [esp + 0x1c]
shl ebp, 0x13
or ebp, 0x10
mov dword [esp + 0x40], ebp
mov dword [edx], ecx
mov edx, dword [esp + 0x14]
or dword [edx - 4], 0x20
or dword [edx + 4], 8
mov ecx, dword [edi + 0x7c]
lea ecx, [ecx*4 + 8]
sub edx, ecx
mov ecx, dword [esp + 0x24]
shl ecx, 0x1f
or ecx, 0x10000
or dword [edx], ecx
or dword [edx - 4], 0x20000
or dword [edx + 4], 0x8000
mov edx, ebp
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 + 0x24], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c0d83
cmp ebx, ebp
mov ebx, ebp
jae 0x4c0d16
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c0d29
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
nop
test esi, esi
jne 0x4c0d71
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c0d64
cmp edx, 0x8f
jbe 0x4c0d55
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c0d6c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c0d71
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 0x4c0d30
jmp 0x4c0e0a
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c0e07
cmp ebx, ebp
jae 0x4c0dab
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 0x4c0db1
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
test esi, esi
jne 0x4c0df8
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c0deb
cmp edx, 0x8f
jbe 0x4c0ddc
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c0df3
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c0df8
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 0x4c0db7
jmp 0x4c0e0a
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c0fd7
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 + 0x54b188]
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 0x4c0eff
cmp ebx, ebp
mov ebx, ebp
jae 0x4c0e93
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c0ea2
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 0x4c0ee9
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c0edc
cmp edx, 0x8f
jbe 0x4c0ecd
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c0ee4
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c0ee9
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 0x4c0ea8
mov edx, dword [esp + 0x24]
jmp 0x4c0f8e
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c0f8b
cmp ebx, ebp
jae 0x4c0f27
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c0f31
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 0x4c0f78
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c0f6b
cmp edx, 0x8f
jbe 0x4c0f5c
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c0f73
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c0f78
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 0x4c0f37
mov edx, dword [esp + 0x24]
jmp 0x4c0f8e
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c0fa3
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 0x4c0fdb
mov ecx, dword [esp + 0x40]
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 + 0x24], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c1085
cmp ebx, ebp
mov ebx, ebp
jae 0x4c1019
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c102c
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
test esi, esi
jne 0x4c1073
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c1066
cmp edx, 0x8f
jbe 0x4c1057
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c106e
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1073
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 0x4c1032
jmp 0x4c1113
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c1110
cmp ebx, ebp
jae 0x4c10b1
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 0x4c10b7
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
lea ecx, [ecx]
test esi, esi
jne 0x4c1101
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c10f4
cmp edx, 0x8f
jbe 0x4c10e5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c10fc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1101
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 0x4c10c0
jmp 0x4c1113
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c12e3
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 + 0x54b188]
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 0x4c1208
cmp ebx, ebp
mov ebx, ebp
jae 0x4c119c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c11ab
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 0x4c11f2
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c11e5
cmp edx, 0x8f
jbe 0x4c11d6
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c11ed
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c11f2
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 0x4c11b1
mov edx, dword [esp + 0x24]
jmp 0x4c1297
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c1294
cmp ebx, ebp
jae 0x4c1230
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c123a
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 0x4c1281
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c1274
cmp edx, 0x8f
jbe 0x4c1265
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c127c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1281
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 0x4c1240
mov edx, dword [esp + 0x24]
jmp 0x4c1297
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c12ac
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 0x4c12e7
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 0x4c1393
cmp ebx, ebp
mov ebx, ebp
jae 0x4c1325
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c1338
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 0x4c1381
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c1374
cmp edx, 0x8f
jbe 0x4c1365
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c137c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1381
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 0x4c1340
jmp 0x4c141a
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c1417
cmp ebx, ebp
jae 0x4c13bb
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 0x4c13c1
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c1408
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c13fb
cmp edx, 0x8f
jbe 0x4c13ec
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c1403
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1408
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 0x4c13c7
jmp 0x4c141a
mov ebp, dword [edx + 4]
test ebp, ebp
je case.default.0x4c0b24
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 + 0x54b188]
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 0x4c150f
cmp ebx, ebp
mov ebx, ebp
jae 0x4c14a3
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c14b2
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 0x4c14f9
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c14ec
cmp edx, 0x8f
jbe 0x4c14dd
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c14f4
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c14f9
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 0x4c14b8
mov edx, dword [esp + 0x24]
jmp 0x4c159e
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c159b
cmp ebx, ebp
jae 0x4c1537
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c1541
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 0x4c1588
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c157b
cmp edx, 0x8f
jbe 0x4c156c
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c1583
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1588
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 0x4c1547
mov edx, dword [esp + 0x24]
jmp 0x4c159e
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c15b3
neg ecx
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x30]
mov dword [edi + ebp], ecx
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
or dword [ecx - 4], 0x4000
mov ecx, edx
shl ecx, 0x1c
or ecx, 0x2000
shl edx, 0x12
or ebp, ecx
or edx, 2
mov ecx, dword [esp + 0x14]
or dword [ecx + 4], 0x1000
mov ecx, dword [edi + 0x7c]
mov edi, dword [esp + 0x14]
or dword [edi + ecx*4 + 8], edx
mov edx, edi
mov edi, dword [esp + 0x3c]
or dword [edx + ecx*4 + 4], 4
or dword [edx + ecx*4 + 0xc], 1
and ebp, 0xb6dfffff
mov dword [edx], ebp
jmp 0x4c224d
test ebp, 0x200010
jne 0x4c1939
mov ecx, dword [edi + 0x6c]
mov edx, ebp
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 0x4c16ca
cmp ebx, ebp
mov ebx, ebp
jae 0x4c165e
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c1671
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 0x4c16b8
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c16ab
cmp edx, 0x8f
jbe 0x4c169c
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c16b3
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c16b8
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 0x4c1677
jmp 0x4c1755
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c1752
cmp ebx, ebp
jae 0x4c16f6
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 0x4c16fc
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c1743
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c1736
cmp edx, 0x8f
jbe 0x4c1727
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c173e
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1743
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 0x4c1702
jmp 0x4c1755
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4c1939
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
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 + 0x54b188]
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 0x4c1843
cmp ebx, ebp
mov ebx, ebp
jae 0x4c17d7
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c17ea
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 0x4c1831
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c1824
cmp edx, 0x8f
jbe 0x4c1815
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c182c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1831
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 0x4c17f0
jmp 0x4c18d3
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c18d0
cmp ebx, ebp
jae 0x4c186f
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 0x4c1875
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
jmp 0x4c1880
test esi, esi
jne 0x4c18c1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c18b4
cmp edx, 0x8f
jbe 0x4c18a5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c18bc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c18c1
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 0x4c1880
jmp 0x4c18d3
mov ebp, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor ebp, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ebp
je 0x4c18ec
neg ecx
mov edx, dword [esp + 0x1c]
mov dword [edx], ecx
mov ecx, ebp
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
shl ecx, 0x13
or ecx, 0x10
or dword [edx - 4], 0x20
or ebp, ecx
or dword [edx + 4], 8
mov ecx, dword [edi + 0x7c]
mov dword [esp + 0x40], ebp
lea ecx, [ecx*4 + 8]
sub edx, ecx
mov ecx, dword [esp + 0x24]
shl ecx, 0x1f
or ecx, 0x10000
or dword [edx], ecx
or dword [edx - 4], 0x20000
or dword [edx + 4], 0x8000
test ebp, 0x1000080
jne 0x4c1c4e
mov ecx, dword [edi + 0x6c]
mov edx, ebp
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 0x4c19f3
cmp ebx, ebp
mov ebx, ebp
jae 0x4c1983
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c1996
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 esp, [esp]
test esi, esi
jne 0x4c19e1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c19d4
cmp edx, 0x8f
jbe 0x4c19c5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c19dc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c19e1
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 0x4c19a0
jmp 0x4c1a83
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c1a80
cmp ebx, ebp
jae 0x4c1a1f
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 0x4c1a25
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
jmp 0x4c1a30
test esi, esi
jne 0x4c1a71
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c1a64
cmp edx, 0x8f
jbe 0x4c1a55
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c1a6c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1a71
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 0x4c1a30
jmp 0x4c1a83
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4c1c4e
mov ecx, dword [esp + 0x14]
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 + 0x54b188]
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 0x4c1b78
cmp ebx, ebp
mov ebx, ebp
jae 0x4c1b0c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c1b1b
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 0x4c1b62
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c1b55
cmp edx, 0x8f
jbe 0x4c1b46
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c1b5d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1b62
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 0x4c1b21
mov edx, dword [esp + 0x24]
jmp 0x4c1c07
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c1c04
cmp ebx, ebp
jae 0x4c1ba0
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c1baa
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 0x4c1bf1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c1be4
cmp edx, 0x8f
jbe 0x4c1bd5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c1bec
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1bf1
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 0x4c1bb0
mov edx, dword [esp + 0x24]
jmp 0x4c1c07
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c1c1c
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
test ebp, 0x8000400
jne 0x4c1f65
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 + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c1d04
cmp ebx, ebp
mov ebx, ebp
jae 0x4c1c98
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c1cab
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 0x4c1cf2
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c1ce5
cmp edx, 0x8f
jbe 0x4c1cd6
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c1ced
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1cf2
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 0x4c1cb1
jmp 0x4c1d93
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c1d90
cmp ebx, ebp
jae 0x4c1d30
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 0x4c1d36
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
lea esp, [esp]
test esi, esi
jne 0x4c1d81
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c1d74
cmp edx, 0x8f
jbe 0x4c1d65
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c1d7c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1d81
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 0x4c1d40
jmp 0x4c1d93
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4c1f65
mov ecx, dword [esp + 0x14]
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 + 0x54b188]
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 0x4c1e88
cmp ebx, ebp
mov ebx, ebp
jae 0x4c1e1c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c1e2b
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 0x4c1e72
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c1e65
cmp edx, 0x8f
jbe 0x4c1e56
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c1e6d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1e72
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 0x4c1e31
mov edx, dword [esp + 0x24]
jmp 0x4c1f17
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c1f14
cmp ebx, ebp
jae 0x4c1eb0
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c1eba
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 0x4c1f01
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c1ef4
cmp edx, 0x8f
jbe 0x4c1ee5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c1efc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c1f01
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 0x4c1ec0
mov edx, dword [esp + 0x24]
jmp 0x4c1f17
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c1f2c
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 + 0x40]
mov ecx, dword [esp + 0x14]
or ebp, edx
mov edi, dword [esp + 0x3c]
mov edx, ecx
mov dword [esp + 0x40], ebp
or dword [ecx - 4], 0x800
or dword [edx + 4], 0x200
jmp 0x4c1f69
mov edx, dword [esp + 0x14]
test ebp, 0x40002000
jne 0x4c223f
mov ecx, dword [edi + 0x6c]
mov edx, ebp
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 0x4c2023
cmp ebx, ebp
mov ebx, ebp
jae 0x4c1fb3
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c1fc6
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 esp, [esp]
test esi, esi
jne 0x4c2011
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2004
cmp edx, 0x8f
jbe 0x4c1ff5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c200c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2011
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 0x4c1fd0
jmp 0x4c20b3
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c20b0
cmp ebx, ebp
jae 0x4c204f
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 0x4c2055
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
jmp 0x4c2060
test esi, esi
jne 0x4c20a1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2094
cmp edx, 0x8f
jbe 0x4c2085
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c209c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c20a1
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 0x4c2060
jmp 0x4c20b3
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4c223b
mov ecx, dword [esp + 0x14]
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 + 0x54b188]
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 0x4c21a8
cmp ebx, ebp
mov ebx, ebp
jae 0x4c213c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c214b
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 0x4c2192
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2185
cmp edx, 0x8f
jbe 0x4c2176
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c218d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2192
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 0x4c2151
mov edx, dword [esp + 0x24]
jmp 0x4c159e
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c159b
cmp ebx, ebp
jae 0x4c21d0
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c21da
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 0x4c2221
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2214
cmp edx, 0x8f
jbe 0x4c2205
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c221c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2221
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 0x4c21e0
mov edx, dword [esp + 0x24]
jmp 0x4c159e
mov ebp, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
and ebp, 0xb6dfffff
mov dword [edx], ebp
jmp 0x4c224d
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x34]
add edx, 4
mov ecx, dword [esp + 0x1c]
inc ebp
add ecx, 4
mov dword [esp + 0x34], ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], edx
cmp ebp, dword [esp + 0x20]
jb 0x4c07b4
mov ebp, dword [esp + 0x28]
jmp 0x4c227c
mov ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0x30]
add ebp, 4
mov dword [esp + 0x1c], ecx
add edx, 8
mov ecx, dword [edi + 0x80]
and ecx, 0xfffffffc
mov dword [esp + 0x28], ebp
mov dword [esp + 0x14], edx
cmp ebp, ecx
jb 0x4c07a0
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
jmp 0x4c22b1
mov edx, dword [esp + 0x14]
mov dword [edi + 0x68], ebp
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], esi
cmp ecx, dword [edi + 0x80]
jae 0x4c233a
mov ebp, dword [esp + 0x20]
test ebp, ebp
je 0x4c233a
mov ebx, dword [esp + 0x1c]
mov ecx, ebp
sub ebx, edx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x1c], ebx
mov eax, dword [edi + 0x80]
xor esi, esi
sub eax, dword [esp + 0x28]
je 0x4c2326
shl ebp, 2
add ebx, edx
push 0
push esi
push dword [esp + 0x20]
push ebx
push edx
push edi
call fcn.004c3f90
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 0x4c22f3
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 0x4c22e0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret