Function at 0x4c2360
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 0x4c3ed8
mov ecx, dword [esp + 0x20]
lea ebp, [ecx + ecx*2]
shl ebp, 2
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x14]
jmp 0x4c23e4
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], 0
test ecx, ecx
je 0x4c3ea9
mov ecx, dword [ebp]
mov dword [esp + 0x40], ecx
test ecx, ecx
jne 0x4c3237
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 0x4c2494
cmp ebx, ebp
mov ebx, ebp
jae 0x4c2428
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c243b
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 0x4c2482
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2475
cmp edx, 0x8f
jbe 0x4c2466
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c247d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2482
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 0x4c2441
jmp 0x4c251b
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c2518
cmp ebx, ebp
jae 0x4c24bc
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 0x4c24c2
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c2509
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c24fc
cmp edx, 0x8f
jbe 0x4c24ed
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c2504
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2509
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 0x4c24c8
jmp 0x4c251b
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c3e7a
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 0x4c25b4
cmp ebx, ebp
mov ebx, ebp
jae 0x4c254c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c255b
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 0x4c25a2
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2595
cmp edx, 0x8f
jbe 0x4c2586
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c259d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c25a2
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 0x4c2561
jmp 0x4c263f
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c2638
cmp ebx, ebp
jae 0x4c25d8
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c25e2
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 0x4c2629
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c261c
cmp edx, 0x8f
jbe 0x4c260d
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c2624
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2629
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 0x4c25e8
jmp 0x4c263f
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 0x4c26d3
cmp ebx, ebp
mov ebx, ebp
jae 0x4c2664
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c2677
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 0x4c26c1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c26b4
cmp edx, 0x8f
jbe 0x4c26a5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c26bc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c26c1
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 0x4c2680
jmp 0x4c275a
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c2757
cmp ebx, ebp
jae 0x4c26fb
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 0x4c2701
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c2748
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c273b
cmp edx, 0x8f
jbe 0x4c272c
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c2743
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2748
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 0x4c2707
jmp 0x4c275a
mov ebp, dword [edx + 4]
mov ecx, dword [esp + 0x24]
add ecx, ecx
or ecx, ebp
cmp ecx, 3
ja case.default.0x4c276b
jmp dword [ecx*4 + 0x4c3f74]
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 + 0x24], ecx
mov ecx, eax
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c2837
cmp ebx, ebp
mov ebx, ebp
jae 0x4c27cb
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov dword [esp + 0x40], ebp
jmp 0x4c27da
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 0x4c2821
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2814
cmp edx, 0x8f
jbe 0x4c2805
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c281c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2821
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 0x4c27e0
mov edx, dword [esp + 0x40]
jmp 0x4c28c7
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c28c4
cmp ebx, ebp
jae 0x4c285f
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x40], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c2869
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 0x4c28b1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c28a4
cmp edx, 0x8f
jbe 0x4c2895
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c28ac
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c28b1
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 0x4c2870
mov edx, dword [esp + 0x40]
jmp 0x4c28c7
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c28dc
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 0x4c29a3
cmp ebx, ebp
mov ebx, ebp
jae 0x4c2935
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c2948
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 0x4c2991
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2984
cmp edx, 0x8f
jbe 0x4c2975
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c298c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2991
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 0x4c2950
jmp 0x4c2a33
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c2a30
cmp ebx, ebp
jae 0x4c29cf
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 0x4c29d5
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
jmp 0x4c29e0
test esi, esi
jne 0x4c2a21
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2a14
cmp edx, 0x8f
jbe 0x4c2a05
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c2a1c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2a21
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 0x4c29e0
jmp 0x4c2a33
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c2c00
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 0x4c2b28
cmp ebx, ebp
mov ebx, ebp
jae 0x4c2abc
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c2acb
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 0x4c2b12
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2b05
cmp edx, 0x8f
jbe 0x4c2af6
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c2b0d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2b12
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 0x4c2ad1
mov edx, dword [esp + 0x24]
jmp 0x4c2bb7
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c2bb4
cmp ebx, ebp
jae 0x4c2b50
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c2b5a
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 0x4c2ba1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2b94
cmp edx, 0x8f
jbe 0x4c2b85
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c2b9c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2ba1
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 0x4c2b60
mov edx, dword [esp + 0x24]
jmp 0x4c2bb7
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c2bcc
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 0x4c2c04
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 0x4c2cb3
cmp ebx, ebp
mov ebx, ebp
jae 0x4c2c42
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c2c55
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 0x4c2c60
test esi, esi
jne 0x4c2ca1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2c94
cmp edx, 0x8f
jbe 0x4c2c85
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c2c9c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2ca1
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 0x4c2c60
jmp 0x4c2d3a
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c2d37
cmp ebx, ebp
jae 0x4c2cdb
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 0x4c2ce1
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
test esi, esi
jne 0x4c2d28
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2d1b
cmp edx, 0x8f
jbe 0x4c2d0c
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c2d23
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2d28
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 0x4c2ce7
jmp 0x4c2d3a
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c2f0a
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 0x4c2e2f
cmp ebx, ebp
mov ebx, ebp
jae 0x4c2dc3
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c2dd2
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 0x4c2e19
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2e0c
cmp edx, 0x8f
jbe 0x4c2dfd
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c2e14
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2e19
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 0x4c2dd8
mov edx, dword [esp + 0x24]
jmp 0x4c2ebe
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c2ebb
cmp ebx, ebp
jae 0x4c2e57
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c2e61
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 0x4c2ea8
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2e9b
cmp edx, 0x8f
jbe 0x4c2e8c
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c2ea3
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2ea8
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 0x4c2e67
mov edx, dword [esp + 0x24]
jmp 0x4c2ebe
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c2ed3
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 0x4c2f0e
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 0x4c2fb8
cmp ebx, ebp
mov ebx, ebp
jae 0x4c2f4c
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c2f5f
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 0x4c2fa6
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c2f99
cmp edx, 0x8f
jbe 0x4c2f8a
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c2fa1
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c2fa6
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 0x4c2f65
jmp 0x4c3043
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c3040
cmp ebx, ebp
jae 0x4c2fe4
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 0x4c2fea
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c3031
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c3024
cmp edx, 0x8f
jbe 0x4c3015
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c302c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c3031
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 0x4c2ff0
jmp 0x4c3043
mov ebp, dword [edx + 4]
test ebp, ebp
je case.default.0x4c276b
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 0x4c3138
cmp ebx, ebp
mov ebx, ebp
jae 0x4c30cc
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c30db
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 0x4c3122
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c3115
cmp edx, 0x8f
jbe 0x4c3106
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c311d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c3122
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 0x4c30e1
mov edx, dword [esp + 0x24]
jmp 0x4c31c7
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c31c4
cmp ebx, ebp
jae 0x4c3160
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c316a
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 0x4c31b1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c31a4
cmp edx, 0x8f
jbe 0x4c3195
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c31ac
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c31b1
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 0x4c3170
mov edx, dword [esp + 0x24]
jmp 0x4c31c7
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c31dc
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 0x4c3e7e
test ecx, 0x200010
jne 0x4c3535
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 0x4c32ea
cmp ebx, ebp
mov ebx, ebp
jae 0x4c327e
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c3291
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 0x4c32d8
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c32cb
cmp edx, 0x8f
jbe 0x4c32bc
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c32d3
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c32d8
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 0x4c3297
jmp 0x4c3375
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c3372
cmp ebx, ebp
jae 0x4c3316
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 0x4c331c
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c3363
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c3356
cmp edx, 0x8f
jbe 0x4c3347
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c335e
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c3363
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 0x4c3322
jmp 0x4c3375
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c3531
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 + 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 0x4c3467
cmp ebx, ebp
mov ebx, ebp
jae 0x4c33fb
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c340a
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 0x4c3451
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c3444
cmp edx, 0x8f
jbe 0x4c3435
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c344c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c3451
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 0x4c3410
mov edx, dword [esp + 0x24]
jmp 0x4c34f7
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c34f4
cmp ebx, ebp
jae 0x4c348f
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c3499
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 0x4c34e1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c34d4
cmp edx, 0x8f
jbe 0x4c34c5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c34dc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c34e1
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 0x4c34a0
mov edx, dword [esp + 0x24]
jmp 0x4c34f7
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c350c
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 0x4c3535
mov ecx, dword [esp + 0x40]
test ecx, 0x1000080
jne 0x4c3847
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 0x4c35eb
cmp ebx, ebp
mov ebx, ebp
jae 0x4c357f
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c3592
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 0x4c35d9
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c35cc
cmp edx, 0x8f
jbe 0x4c35bd
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c35d4
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c35d9
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 0x4c3598
jmp 0x4c3676
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c3673
cmp ebx, ebp
jae 0x4c3617
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 0x4c361d
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c3664
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c3657
cmp edx, 0x8f
jbe 0x4c3648
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c365f
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c3664
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 0x4c3623
jmp 0x4c3676
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c3843
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 0x4c376b
cmp ebx, ebp
mov ebx, ebp
jae 0x4c36ff
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c370e
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 0x4c3755
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c3748
cmp edx, 0x8f
jbe 0x4c3739
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c3750
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c3755
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 0x4c3714
mov edx, dword [esp + 0x24]
jmp 0x4c37fa
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c37f7
cmp ebx, ebp
jae 0x4c3793
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c379d
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 0x4c37e4
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c37d7
cmp edx, 0x8f
jbe 0x4c37c8
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c37df
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c37e4
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 0x4c37a3
mov edx, dword [esp + 0x24]
jmp 0x4c37fa
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c380f
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 0x4c3847
mov ecx, dword [esp + 0x40]
test ecx, 0x8000400
jne 0x4c3b67
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 0x4c3903
cmp ebx, ebp
mov ebx, ebp
jae 0x4c3891
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c38a4
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 0x4c38f1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c38e4
cmp edx, 0x8f
jbe 0x4c38d5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c38ec
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c38f1
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 0x4c38b0
jmp 0x4c3993
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c3990
cmp ebx, ebp
jae 0x4c392f
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 0x4c3935
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
jmp 0x4c3940
test esi, esi
jne 0x4c3981
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c3974
cmp edx, 0x8f
jbe 0x4c3965
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c397c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c3981
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 0x4c3940
jmp 0x4c3993
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c3b63
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 0x4c3a88
cmp ebx, ebp
mov ebx, ebp
jae 0x4c3a1c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c3a2b
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 0x4c3a72
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c3a65
cmp edx, 0x8f
jbe 0x4c3a56
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c3a6d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c3a72
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 0x4c3a31
mov edx, dword [esp + 0x24]
jmp 0x4c3b17
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c3b14
cmp ebx, ebp
jae 0x4c3ab0
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c3aba
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 0x4c3b01
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c3af4
cmp edx, 0x8f
jbe 0x4c3ae5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c3afc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c3b01
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 0x4c3ac0
mov edx, dword [esp + 0x24]
jmp 0x4c3b17
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c3b2c
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 0x4c3b6b
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x14]
test ecx, 0x40002000
jne 0x4c3e6f
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 0x4c3c23
cmp ebx, ebp
mov ebx, ebp
jae 0x4c3bb5
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c3bc8
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 0x4c3c11
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c3c04
cmp edx, 0x8f
jbe 0x4c3bf5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c3c0c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c3c11
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 0x4c3bd0
jmp 0x4c3cb3
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c3cb0
cmp ebx, ebp
jae 0x4c3c4f
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 0x4c3c55
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
jmp 0x4c3c60
test esi, esi
jne 0x4c3ca1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c3c94
cmp edx, 0x8f
jbe 0x4c3c85
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c3c9c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c3ca1
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 0x4c3c60
jmp 0x4c3cb3
mov ebp, dword [edx + 4]
test ebp, ebp
je case.default.0x4c276b
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 0x4c3da8
cmp ebx, ebp
mov ebx, ebp
jae 0x4c3d3c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c3d4b
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 0x4c3d92
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c3d85
cmp edx, 0x8f
jbe 0x4c3d76
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c3d8d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c3d92
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 0x4c3d51
mov edx, dword [esp + 0x24]
jmp 0x4c3e37
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c3e34
cmp ebx, ebp
jae 0x4c3dd0
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c3dda
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 0x4c3e21
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c3e14
cmp edx, 0x8f
jbe 0x4c3e05
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c3e1c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c3e21
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 0x4c3de0
mov edx, dword [esp + 0x24]
jmp 0x4c3e37
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x54b288]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c3e4c
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 0x4c31f4
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
and ecx, 0xb6dfffff
mov dword [ebp], ecx
jmp 0x4c3e7e
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 0x4c23f4
mov edx, dword [esp + 0x28]
jmp 0x4c3ead
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 0x4c23e0
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 0x4c3f6a
mov ebp, dword [esp + 0x20]
test ebp, ebp
je 0x4c3f6a
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 0x4c3f56
shl ebp, 2
add ebx, edx
push 1
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 0x4c3f23
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 0x4c3f10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret