Function at 0x4c7020
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 0x4c8b98
mov ecx, dword [esp + 0x20]
lea ebp, [ecx + ecx*2]
shl ebp, 2
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x14]
jmp 0x4c70a4
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], 0
test ecx, ecx
je 0x4c8b69
mov ecx, dword [ebp]
mov dword [esp + 0x40], ecx
test ecx, ecx
jne 0x4c7ef7
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 0x4c7154
cmp ebx, ebp
mov ebx, ebp
jae 0x4c70e8
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c70fb
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 0x4c7142
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7135
cmp edx, 0x8f
jbe 0x4c7126
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c713d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7142
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 0x4c7101
jmp 0x4c71db
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c71d8
cmp ebx, ebp
jae 0x4c717c
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 0x4c7182
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c71c9
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c71bc
cmp edx, 0x8f
jbe 0x4c71ad
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c71c4
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c71c9
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 0x4c7188
jmp 0x4c71db
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c8b3a
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 0x4c7274
cmp ebx, ebp
mov ebx, ebp
jae 0x4c720c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c721b
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 0x4c7262
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7255
cmp edx, 0x8f
jbe 0x4c7246
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c725d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7262
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 0x4c7221
jmp 0x4c72ff
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c72f8
cmp ebx, ebp
jae 0x4c7298
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c72a2
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 0x4c72e9
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c72dc
cmp edx, 0x8f
jbe 0x4c72cd
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c72e4
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c72e9
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 0x4c72a8
jmp 0x4c72ff
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 0x4c7393
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7324
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7337
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 0x4c7381
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7374
cmp edx, 0x8f
jbe 0x4c7365
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c737c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7381
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 0x4c7340
jmp 0x4c741a
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c7417
cmp ebx, ebp
jae 0x4c73bb
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 0x4c73c1
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c7408
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c73fb
cmp edx, 0x8f
jbe 0x4c73ec
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7403
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7408
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 0x4c73c7
jmp 0x4c741a
mov ebp, dword [edx + 4]
mov ecx, dword [esp + 0x24]
add ecx, ecx
or ecx, ebp
cmp ecx, 3
ja case.default.0x4c742b
jmp dword [ecx*4 + 0x4c8c34]
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 0x4c74f7
cmp ebx, ebp
mov ebx, ebp
jae 0x4c748b
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov dword [esp + 0x40], ebp
jmp 0x4c749a
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 0x4c74e1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c74d4
cmp edx, 0x8f
jbe 0x4c74c5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c74dc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c74e1
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 0x4c74a0
mov edx, dword [esp + 0x40]
jmp 0x4c7587
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c7584
cmp ebx, ebp
jae 0x4c751f
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x40], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c7529
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 0x4c7571
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7564
cmp edx, 0x8f
jbe 0x4c7555
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c756c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7571
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 0x4c7530
mov edx, dword [esp + 0x40]
jmp 0x4c7587
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c759c
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 0x4c7663
cmp ebx, ebp
mov ebx, ebp
jae 0x4c75f5
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7608
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 0x4c7651
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7644
cmp edx, 0x8f
jbe 0x4c7635
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c764c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7651
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 0x4c7610
jmp 0x4c76f3
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c76f0
cmp ebx, ebp
jae 0x4c768f
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 0x4c7695
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
jmp 0x4c76a0
test esi, esi
jne 0x4c76e1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c76d4
cmp edx, 0x8f
jbe 0x4c76c5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c76dc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c76e1
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 0x4c76a0
jmp 0x4c76f3
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c78c0
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 0x4c77e8
cmp ebx, ebp
mov ebx, ebp
jae 0x4c777c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c778b
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 0x4c77d2
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c77c5
cmp edx, 0x8f
jbe 0x4c77b6
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c77cd
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c77d2
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 0x4c7791
mov edx, dword [esp + 0x24]
jmp 0x4c7877
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c7874
cmp ebx, ebp
jae 0x4c7810
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c781a
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 0x4c7861
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7854
cmp edx, 0x8f
jbe 0x4c7845
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c785c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7861
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 0x4c7820
mov edx, dword [esp + 0x24]
jmp 0x4c7877
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c788c
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 0x4c78c4
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 0x4c7973
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7902
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7915
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 0x4c7920
test esi, esi
jne 0x4c7961
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7954
cmp edx, 0x8f
jbe 0x4c7945
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c795c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7961
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 0x4c7920
jmp 0x4c79fa
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c79f7
cmp ebx, ebp
jae 0x4c799b
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 0x4c79a1
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
test esi, esi
jne 0x4c79e8
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c79db
cmp edx, 0x8f
jbe 0x4c79cc
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c79e3
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c79e8
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 0x4c79a7
jmp 0x4c79fa
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c7bca
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 0x4c7aef
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7a83
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c7a92
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 0x4c7ad9
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7acc
cmp edx, 0x8f
jbe 0x4c7abd
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7ad4
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7ad9
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 0x4c7a98
mov edx, dword [esp + 0x24]
jmp 0x4c7b7e
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c7b7b
cmp ebx, ebp
jae 0x4c7b17
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c7b21
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 0x4c7b68
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7b5b
cmp edx, 0x8f
jbe 0x4c7b4c
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7b63
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7b68
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 0x4c7b27
mov edx, dword [esp + 0x24]
jmp 0x4c7b7e
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c7b93
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 0x4c7bce
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 0x4c7c78
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7c0c
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7c1f
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 0x4c7c66
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7c59
cmp edx, 0x8f
jbe 0x4c7c4a
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7c61
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7c66
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 0x4c7c25
jmp 0x4c7d03
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c7d00
cmp ebx, ebp
jae 0x4c7ca4
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 0x4c7caa
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c7cf1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7ce4
cmp edx, 0x8f
jbe 0x4c7cd5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7cec
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7cf1
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 0x4c7cb0
jmp 0x4c7d03
mov ebp, dword [edx + 4]
test ebp, ebp
je case.default.0x4c742b
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 0x4c7df8
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7d8c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c7d9b
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 0x4c7de2
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7dd5
cmp edx, 0x8f
jbe 0x4c7dc6
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7ddd
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7de2
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 0x4c7da1
mov edx, dword [esp + 0x24]
jmp 0x4c7e87
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c7e84
cmp ebx, ebp
jae 0x4c7e20
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c7e2a
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 0x4c7e71
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7e64
cmp edx, 0x8f
jbe 0x4c7e55
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7e6c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7e71
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 0x4c7e30
mov edx, dword [esp + 0x24]
jmp 0x4c7e87
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c7e9c
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 0x4c8b3e
test ecx, 0x200010
jne 0x4c81f5
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 0x4c7faa
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7f3e
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7f51
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 0x4c7f98
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7f8b
cmp edx, 0x8f
jbe 0x4c7f7c
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c7f93
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c7f98
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 0x4c7f57
jmp 0x4c8035
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c8032
cmp ebx, ebp
jae 0x4c7fd6
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 0x4c7fdc
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c8023
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8016
cmp edx, 0x8f
jbe 0x4c8007
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c801e
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8023
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 0x4c7fe2
jmp 0x4c8035
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c81f1
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 0x4c8127
cmp ebx, ebp
mov ebx, ebp
jae 0x4c80bb
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c80ca
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 0x4c8111
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8104
cmp edx, 0x8f
jbe 0x4c80f5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c810c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8111
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 0x4c80d0
mov edx, dword [esp + 0x24]
jmp 0x4c81b7
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c81b4
cmp ebx, ebp
jae 0x4c814f
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c8159
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 0x4c81a1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8194
cmp edx, 0x8f
jbe 0x4c8185
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c819c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c81a1
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 0x4c8160
mov edx, dword [esp + 0x24]
jmp 0x4c81b7
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c81cc
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 0x4c81f5
mov ecx, dword [esp + 0x40]
test ecx, 0x1000080
jne 0x4c8507
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 0x4c82ab
cmp ebx, ebp
mov ebx, ebp
jae 0x4c823f
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c8252
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 0x4c8299
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c828c
cmp edx, 0x8f
jbe 0x4c827d
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c8294
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8299
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 0x4c8258
jmp 0x4c8336
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c8333
cmp ebx, ebp
jae 0x4c82d7
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 0x4c82dd
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test esi, esi
jne 0x4c8324
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8317
cmp edx, 0x8f
jbe 0x4c8308
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c831f
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8324
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 0x4c82e3
jmp 0x4c8336
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c8503
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 0x4c842b
cmp ebx, ebp
mov ebx, ebp
jae 0x4c83bf
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c83ce
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 0x4c8415
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8408
cmp edx, 0x8f
jbe 0x4c83f9
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c8410
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8415
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 0x4c83d4
mov edx, dword [esp + 0x24]
jmp 0x4c84ba
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c84b7
cmp ebx, ebp
jae 0x4c8453
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c845d
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 0x4c84a4
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8497
cmp edx, 0x8f
jbe 0x4c8488
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c849f
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c84a4
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 0x4c8463
mov edx, dword [esp + 0x24]
jmp 0x4c84ba
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c84cf
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 0x4c8507
mov ecx, dword [esp + 0x40]
test ecx, 0x8000400
jne 0x4c8827
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 0x4c85c3
cmp ebx, ebp
mov ebx, ebp
jae 0x4c8551
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c8564
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 0x4c85b1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c85a4
cmp edx, 0x8f
jbe 0x4c8595
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c85ac
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c85b1
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 0x4c8570
jmp 0x4c8653
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c8650
cmp ebx, ebp
jae 0x4c85ef
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 0x4c85f5
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
jmp 0x4c8600
test esi, esi
jne 0x4c8641
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8634
cmp edx, 0x8f
jbe 0x4c8625
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c863c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8641
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 0x4c8600
jmp 0x4c8653
mov ebp, dword [edx + 4]
test ebp, ebp
je 0x4c8823
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 0x4c8748
cmp ebx, ebp
mov ebx, ebp
jae 0x4c86dc
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c86eb
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 0x4c8732
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8725
cmp edx, 0x8f
jbe 0x4c8716
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c872d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8732
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 0x4c86f1
mov edx, dword [esp + 0x24]
jmp 0x4c87d7
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c87d4
cmp ebx, ebp
jae 0x4c8770
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c877a
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 0x4c87c1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c87b4
cmp edx, 0x8f
jbe 0x4c87a5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c87bc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c87c1
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 0x4c8780
mov edx, dword [esp + 0x24]
jmp 0x4c87d7
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c87ec
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 0x4c882b
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x14]
test ecx, 0x40002000
jne 0x4c8b2f
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 0x4c88e3
cmp ebx, ebp
mov ebx, ebp
jae 0x4c8875
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c8888
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 0x4c88d1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c88c4
cmp edx, 0x8f
jbe 0x4c88b5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c88cc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c88d1
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 0x4c8890
jmp 0x4c8973
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c8970
cmp ebx, ebp
jae 0x4c890f
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 0x4c8915
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
jmp 0x4c8920
test esi, esi
jne 0x4c8961
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8954
cmp edx, 0x8f
jbe 0x4c8945
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c895c
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8961
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 0x4c8920
jmp 0x4c8973
mov ebp, dword [edx + 4]
test ebp, ebp
je case.default.0x4c742b
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 0x4c8a68
cmp ebx, ebp
mov ebx, ebp
jae 0x4c89fc
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c8a0b
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 0x4c8a52
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8a45
cmp edx, 0x8f
jbe 0x4c8a36
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c8a4d
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8a52
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 0x4c8a11
mov edx, dword [esp + 0x24]
jmp 0x4c8af7
mov ecx, ebp
shl ecx, 0x10
sub eax, ecx
test ebx, 0x8000
jne 0x4c8af4
cmp ebx, ebp
jae 0x4c8a90
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c8a9a
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 0x4c8ae1
mov ecx, dword [edi + 0x10]
movzx edx, byte [ecx + 1]
lea esi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8ad4
cmp edx, 0x8f
jbe 0x4c8ac5
add eax, 0xff00
inc dword [edi + 0xc]
jmp 0x4c8adc
shl edx, 9
mov dword [edi + 0x10], esi
add eax, edx
mov esi, 7
jmp 0x4c8ae1
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 0x4c8aa0
mov edx, dword [esp + 0x24]
jmp 0x4c8af7
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 0x550250]
xor edx, ecx
mov ecx, dword [esp + 0x18]
je 0x4c8b0c
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 0x4c7eb4
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
and ecx, 0xb6dfffff
mov dword [ebp], ecx
jmp 0x4c8b3e
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 0x4c70b4
mov edx, dword [esp + 0x28]
jmp 0x4c8b6d
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 0x4c70a0
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 0x4c8c2a
mov ebp, dword [esp + 0x20]
test ebp, ebp
je 0x4c8c2a
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 0x4c8c16
shl ebp, 2
add ebx, edx
push 1
push esi
push dword [esp + 0x20]
push ebx
push edx
push edi
call fcn.004c8c50
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 0x4c8be3
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 0x4c8bd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret