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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x284]
cmp eax, dword [ecx + 8]
jbe 0x4a5ad8
sub esp, 0x304
mov edx, dword [esp + 0x308]
mov ebx, dword [edx + 0x18]
mov ebp, dword [edx + 0x1c]
cmp dword [edx + 0x33c], 1
jne 0x4a299a
movzx esi, byte [esp + 0x318]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4a29a2
mov edi, dword [0x4d0060]
mov ecx, dword [0x4d0064]
mov eax, dword [esp + 0x314]
cmp eax, ecx
jae 0x4a5ad2
shl eax, 4
mov ecx, dword [edi + eax]
mov esi, dword [edi + eax + 4]
mov edx, dword [edi + eax + 8]
mov edi, dword [edi + eax + 0xc]
sub ebx, edx
lea eax, [ecx + ebx - 1]
test ecx, ecx
je 0x4a5acd
cmp ecx, 0xffffffff
je 0x4a2924
cdq
idiv ecx
jmp 0x4a2926
neg eax
sub ebp, edi
lea ecx, [esi + ebp - 1]
test esi, esi
je 0x4a5ac8
mov dword [esp + 0x7c], eax
mov eax, ecx
cmp esi, 0xffffffff
je 0x4a2944
cdq
idiv esi
jmp 0x4a2946
neg eax
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x4a2952
test eax, eax
jne 0x4a2985
mov dword [esp + 0x31c], 0
mov dword [esp + 0x320], 0
mov dword [esp + 0x324], 0
mov dword [esp + 0x328], 0
add esp, 0x304
ret
mov edx, dword [esp + 0x308]
movzx esi, byte [esp + 0x318]
mov ebx, ecx
mov ebp, eax
jmp 0x4a29a2
movzx esi, byte [esp + 0x318]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x108], ebp
mov ecx, dword [edx + 0x30]
cmp ecx, 0xa
jg 0x4a2dd0
cmp ecx, 5
jg 0x4a2bd5
lea edi, [ecx - 1]
cmp edi, 3
ja 0x4a2b0f
mov eax, dword [edx + 0x20]
mov dword [esp + 0x100], eax
movzx ecx, byte [edx + 0x340]
test cl, cl
je 0x4a2a47
nop
test ebx, ebx
jge 0x4a29ee
mov ecx, ebx
xor edi, edi
jmp 0x4a29f4
mov ecx, ebx
xor ebx, ebx
mov edi, ecx
test ebp, ebp
jge 0x4a2a0a
mov dword [esp + 0x2b4], eax
xor eax, eax
mov dword [esp + 0x88], eax
jmp 0x4a2a1c
xor ebp, ebp
mov ebp, dword [esp + 0x108]
mov dword [esp + 0x88], ebp
xor ebp, ebp
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc], eax
call fcn.00493810
mov eax, dword [esp + 0x10]
lea ecx, [0x51e62c]
mov edx, eax
xor ebx, ebx
jmp 0x4a2aa9
nop
test ebx, ebx
jge 0x4a2a52
mov ecx, ebx
xor edi, edi
jmp 0x4a2a58
mov ecx, ebx
xor ebx, ebx
mov edi, ecx
test ebp, ebp
jge 0x4a2a6e
mov dword [esp + 0x2ac], eax
xor eax, eax
mov dword [esp + 0x84], eax
jmp 0x4a2a80
xor ebp, ebp
mov ebp, dword [esp + 0x108]
mov dword [esp + 0x84], ebp
xor ebp, ebp
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc], eax
call fcn.00494330
mov eax, dword [esp + 0x10]
lea ecx, [0x51e584]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x2e0], ebp
xor esi, esi
mov dword [esp + 0x2d0], esi
xor ebp, ebp
mov dword [esp + 0x2bc], ebp
xor ebp, ebp
mov dword [esp + 0x2c8], ebp
mov dword [esp + 0x104], ecx
mov dword [esp + 0x2d4], eax
mov eax, ebx
mov ecx, edx
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x7c]
jmp 0x4a327e
cmp ecx, 5
jne 0x4a3237
nop
test ebx, ebx
jge 0x4a2b23
mov eax, ebx
xor ecx, ecx
jmp 0x4a2b29
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2b31
xor edi, edi
jmp 0x4a2b3a
xor ebp, ebp
mov edi, dword [esp + 0x108]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493810
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
mov ecx, eax
xor edi, edi
xor eax, eax
mov dword [esp + 0x2e0], eax
xor edx, edx
mov dword [esp + 0x2d0], edx
xor ebx, ebx
mov dword [esp + 0x2bc], ebx
xor ebp, ebp
mov dword [esp + 0x2c8], ebp
lea esi, [0x51e62c]
mov dword [esp + 0x104], esi
mov dword [esp + 0x2d4], ecx
mov eax, 0x10
mov dword [esp + 0x100], eax
xor eax, eax
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
jmp 0x4a327e
cmp ecx, 6
jne 0x4a2ce5
movzx eax, byte [edx + 0x340]
test al, al
je 0x4a2c2f
nop
test ebx, ebx
jge 0x4a2bf4
mov eax, ebx
xor ecx, ecx
jmp 0x4a2bfa
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2c02
xor edi, edi
jmp 0x4a2c0b
xor ebp, ebp
mov edi, dword [esp + 0x108]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493810
mov eax, dword [esp + 0x10]
lea ecx, [0x51e62c]
mov edx, eax
xor ebx, ebx
jmp 0x4a2c73
nop
test ebx, ebx
jge 0x4a2c3a
mov eax, ebx
xor ecx, ecx
jmp 0x4a2c40
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2c48
xor edi, edi
jmp 0x4a2c51
xor ebp, ebp
mov edi, dword [esp + 0x108]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00492c80
mov eax, dword [esp + 0x10]
lea ecx, [0x51e680]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
mov edi, ebx
xor ebx, ebx
mov dword [esp + 0x2e0], ebx
xor ebp, ebp
mov dword [esp + 0x2d0], ebp
xor esi, esi
mov dword [esp + 0x2bc], esi
xor ebx, ebx
mov dword [esp + 0x2c8], ebx
mov dword [esp + 0x104], ecx
mov dword [esp + 0x2d4], eax
mov ebx, 0x18
mov dword [esp + 0x100], ebx
mov ebx, dword [esp + 0x7c]
xor eax, eax
mov ecx, edx
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
mov edx, dword [esp + 0x308]
jmp 0x4a327e
mov eax, dword [edx + 0x20]
test ebx, ebx
jge 0x4a2cf2
mov ecx, ebx
xor edi, edi
jmp 0x4a2cf8
mov ecx, ebx
xor ebx, ebx
mov edi, ecx
mov dword [esp + 0x100], eax
test ebp, ebp
jge 0x4a2d15
mov dword [esp + 0x2a4], eax
xor eax, eax
mov dword [esp + 0x80], eax
jmp 0x4a2d27
xor ebp, ebp
mov ebp, dword [esp + 0x108]
mov dword [esp + 0x80], ebp
xor ebp, ebp
mov eax, dword [edx + 0x24]
mov ecx, dword [edx + 0x28]
mov esi, dword [edx + 0x2c]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov ebx, dword [esp + 0x80]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], esi
call fcn.00494d20
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x2e0], eax
xor edx, edx
mov dword [esp + 0x2d0], edx
xor ebx, ebx
mov dword [esp + 0x2bc], ebx
xor ebp, ebp
mov dword [esp + 0x2c8], ebp
lea esi, [0x51e6b8]
mov dword [esp + 0x104], esi
mov dword [esp + 0x2d4], eax
xor eax, eax
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
jmp 0x4a327e
cmp ecx, 0xc
jg 0x4a2fa2
cmp ecx, 0xb
jne 0x4a2e9f
nop
test ebx, ebx
jge 0x4a2ded
mov eax, ebx
xor ecx, ecx
jmp 0x4a2df3
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2dfb
xor edi, edi
jmp 0x4a2e04
xor ebp, ebp
mov edi, dword [esp + 0x108]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493810
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
mov ecx, eax
xor edi, edi
xor eax, eax
mov dword [esp + 0x2e0], eax
xor edx, edx
mov dword [esp + 0x2d0], edx
xor ebx, ebx
mov dword [esp + 0x2bc], ebx
xor ebp, ebp
mov dword [esp + 0x2c8], ebp
lea esi, [0x51e62c]
mov dword [esp + 0x104], esi
mov dword [esp + 0x2d4], ecx
mov eax, 0x20
mov dword [esp + 0x100], eax
xor eax, eax
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
jmp 0x4a327e
movzx eax, byte [edx + 0x340]
test al, al
je 0x4a2ef0
nop
test ebx, ebx
jge 0x4a2eb5
mov eax, ebx
xor ecx, ecx
jmp 0x4a2ebb
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2ec3
xor edi, edi
jmp 0x4a2ecc
xor ebp, ebp
mov edi, dword [esp + 0x108]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493f30
mov eax, dword [esp + 0x10]
lea ecx, [0x51e5a0]
mov edx, eax
xor ebx, ebx
jmp 0x4a2f34
nop
test ebx, ebx
jge 0x4a2efb
mov eax, ebx
xor ecx, ecx
jmp 0x4a2f01
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2f09
xor edi, edi
jmp 0x4a2f12
xor ebp, ebp
mov edi, dword [esp + 0x108]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00494860
mov eax, dword [esp + 0x10]
lea ecx, [0x51e648]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x2e0], ebp
mov dword [esp + 0x2d0], ebx
xor esi, esi
mov dword [esp + 0x2bc], esi
mov dword [esp + 0x2c8], edx
mov dword [esp + 0x104], ecx
mov dword [esp + 0x2d4], eax
mov ebp, 0x10
mov dword [esp + 0x100], ebp
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x7c]
xor eax, eax
xor ecx, ecx
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
jmp 0x4a327e
cmp ecx, 0xd
jne 0x4a3068
nop
test ebx, ebx
jge 0x4a2fb6
mov eax, ebx
xor ecx, ecx
jmp 0x4a2fbc
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2fc4
xor edi, edi
jmp 0x4a2fcd
xor ebp, ebp
mov edi, dword [esp + 0x108]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493f30
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
xor ecx, ecx
xor edi, edi
xor edx, edx
mov dword [esp + 0x2e0], edx
xor ebx, ebx
mov dword [esp + 0x2d0], ebx
xor ebp, ebp
mov dword [esp + 0x2bc], ebp
mov dword [esp + 0x2c8], eax
lea esi, [0x51e5a0]
mov dword [esp + 0x104], esi
mov dword [esp + 0x2d4], eax
mov ecx, 0x20
mov dword [esp + 0x100], ecx
xor eax, eax
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
xor ecx, ecx
jmp 0x4a327e
cmp ecx, 0xe
jne 0x4a3174
movzx eax, byte [edx + 0x340]
test al, al
je 0x4a30c2
nop
test ebx, ebx
jge 0x4a3087
mov eax, ebx
xor ecx, ecx
jmp 0x4a308d
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a3095
xor edi, edi
jmp 0x4a309e
xor ebp, ebp
mov edi, dword [esp + 0x108]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493f30
mov eax, dword [esp + 0x10]
lea ecx, [0x51e5a0]
mov edx, eax
xor ebx, ebx
jmp 0x4a3106
nop
test ebx, ebx
jge 0x4a30cd
mov eax, ebx
xor ecx, ecx
jmp 0x4a30d3
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a30db
xor edi, edi
jmp 0x4a30e4
xor ebp, ebp
mov edi, dword [esp + 0x108]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493190
mov eax, dword [esp + 0x10]
lea ecx, [0x51e69c]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x2e0], ebp
xor esi, esi
mov dword [esp + 0x2d0], esi
mov dword [esp + 0x2bc], ebx
mov dword [esp + 0x2c8], edx
mov dword [esp + 0x104], ecx
mov dword [esp + 0x2d4], eax
mov ebp, 0x30
mov dword [esp + 0x100], ebp
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x7c]
xor eax, eax
xor ecx, ecx
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
jmp 0x4a327e
cmp ecx, 0xf
jne 0x4a3237
nop
test ebx, ebx
jge 0x4a3188
mov eax, ebx
xor ecx, ecx
jmp 0x4a318e
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a3196
xor edi, edi
jmp 0x4a319f
xor ebp, ebp
mov edi, dword [esp + 0x108]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493f30
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
xor ecx, ecx
xor edi, edi
xor edx, edx
mov dword [esp + 0x2e0], edx
xor ebx, ebx
mov dword [esp + 0x2d0], ebx
xor ebp, ebp
mov dword [esp + 0x2bc], ebp
mov dword [esp + 0x2c8], eax
lea esi, [0x51e5a0]
mov dword [esp + 0x104], esi
mov dword [esp + 0x2d4], eax
mov ecx, 0x40
mov dword [esp + 0x100], ecx
xor eax, eax
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x108]
movzx esi, byte [esp + 0x318]
xor ecx, ecx
jmp 0x4a327e
xor eax, eax
xor ecx, ecx
xor edi, edi
xor eax, eax
mov dword [esp + 0x2e0], eax
xor eax, eax
mov dword [esp + 0x2d0], eax
xor eax, eax
mov dword [esp + 0x2bc], eax
xor eax, eax
mov dword [esp + 0x2c8], eax
xor eax, eax
mov dword [esp + 0x104], eax
xor eax, eax
mov dword [esp + 0x2d4], eax
xor eax, eax
mov dword [esp + 0x100], eax
xor eax, eax
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4a33d3
mov dword [esp + 0x2d8], edi
mov esi, eax
mov eax, dword [esp + 0x100]
mul ebx
mov edi, dword [esp + 0x100]
sar edi, 0x1f
imul edi, ebx
add edx, edi
sar ebx, 0x1f
mov edi, dword [esp + 0x100]
imul ebx, edi
add edx, ebx
mov ebx, eax
add eax, 7
mov eax, edx
adc edx, 0
sar edx, 0x1f
shr edx, 0x1d
add edx, ebx
adc eax, 0
add edx, 7
adc eax, 0
shr edx, 3
mov ebx, eax
shl eax, 0x1d
or edx, eax
sar ebx, 3
add edx, 1
adc ebx, 0
mov eax, esi
lea esi, [edi + 7]
sar esi, 0x1f
shr esi, 0x1d
lea esi, [edi + esi + 7]
mov edi, edx
sar edx, 0x1f
cmp edx, ebx
jne 0x4a339c
mov dword [esp + 0x130], edi
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x2dc], ecx
mov dword [esp + 0x300], eax
mov dword [esp + 0x12c], esi
lea eax, [0x4e6b60]
mov dword [esp], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edi
call fcn.0043f9b0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2fc], eax
lea ecx, [0x4e6b60]
mov dword [esp], ecx
mov ecx, dword [esp + 0x10c]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x130]
mov dword [esp + 4], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
call fcn.0043f9b0
mov eax, dword [esp + 0x12c]
sar eax, 3
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x14]
xor edx, edx
mov ebx, dword [esp + 0x2fc]
xor ebp, ebp
jmp 0x4a3421
mov dword [esp + 0x31c], 0
mov dword [esp + 0x320], 0
lea eax, [0x51e48c]
mov dword [esp + 0x324], eax
lea eax, [0x51e170]
mov dword [esp + 0x328], eax
add esp, 0x304
ret
mov eax, dword [esp + 0x104]
mov dword [esp + 0x31c], eax
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x320], eax
mov dword [esp + 0x324], 0
mov dword [esp + 0x328], 0
add esp, 0x304
ret
mov esi, dword [esp + 0x110]
lea ebp, [esi + 1]
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x2cc]
mov esi, dword [esp + 0x108]
cmp ebp, esi
jge 0x4a3c43
mov dword [esp + 0x2cc], ecx
mov dword [esp + 0x2f8], ebx
mov dword [esp + 0x110], ebp
mov dword [esp + 0x114], edx
nop
mov eax, dword [esp + 0x30c]
mov dword [esp], eax
mov ecx, dword [esp + 0x310]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov edx, dword [esp + 0x130]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
call fcn.0045e7f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
test eax, eax
jne 0x4a3b45
mov ebx, dword [esp + 0x130]
cmp ebx, 1
jb 0x4a5abc
lea ecx, [ebx - 1]
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
mov esi, dword [esp + 0x2f8]
lea edi, [esi + ecx]
cmp ebx, 1
jb 0x4a5ab0
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x2e4], edi
mov eax, ebx
mov ebx, dword [esp + 0x2cc]
mov edx, ebx
add ebx, ecx
mov ecx, esi
movzx esi, byte [esi]
xchg esi, eax
cmp al, 1
xchg esi, eax
ja 0x4a3506
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a3591
mov ebx, dword [esp + 0x78]
mov esi, ebx
jmp 0x4a5a86
mov dword [esp + 0x2e8], ebx
xchg esi, eax
cmp al, 2
xchg esi, eax
jne 0x4a351b
xor esi, esi
jmp 0x4a5a4a
xchg esi, eax
cmp al, 3
xchg esi, eax
jne 0x4a353f
mov esi, dword [esp + 0x78]
mov dword [esp + 0x134], eax
xor eax, eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x134]
jmp 0x4a5974
xchg esi, eax
cmp al, 4
xchg esi, eax
jne 0x4a3b0e
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ebp
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], eax
call fcn.004a1300
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2cc]
mov ebp, dword [esp + 0x12c]
mov edi, dword [esp + 0x2e4]
mov ebx, dword [esp + 0x308]
mov esi, dword [ebx + 0x30]
cmp esi, 7
jg 0x4a38a6
cmp esi, 3
jg 0x4a36c2
cmp esi, 1
jne 0x4a3608
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a35e8
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x3a], al
xchg esi, eax
mov dword [esp + 0x154], eax
xor eax, eax
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x154]
jmp 0x4a5800
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x164], eax
xor eax, eax
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x164]
jmp 0x4a5671
cmp esi, 2
jne 0x4a3663
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a3643
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x39], al
xchg esi, eax
mov dword [esp + 0x184], eax
xor eax, eax
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x184]
jmp 0x4a5503
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x194], eax
xor eax, eax
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x194]
jmp 0x4a5376
cmp esi, 3
jne 0x4a3afb
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a36a2
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x38], al
xchg esi, eax
mov dword [esp + 0x1b4], eax
xor eax, eax
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x1b4]
jmp 0x4a51f1
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x1c4], eax
xor eax, eax
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x1c4]
jmp 0x4a5061
cmp esi, 5
jg 0x4a37a1
cmp esi, 4
jne 0x4a3781
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a370a
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x37], al
xchg esi, eax
mov dword [esp + 0x1dc], eax
xor eax, eax
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x1dc]
jmp 0x4a4fc2
mov esi, dword [esp + 0x300]
mov ebx, dword [esi + 4]
mov edx, dword [esi]
mov esi, dword [esi + 8]
mov edi, dword [esp + 0x114]
cmp edi, ebx
ja 0x4a4f28
sub ebx, edi
sub esi, edi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edi
add edx, esi
cmp ebx, ebp
jg 0x4a373f
mov ebp, ebx
mov ebx, dword [esp + 0x2e4]
cmp edx, ebx
je 0x4a376f
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.00453460
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x2f8]
mov edi, dword [esp + 0x114]
mov ebx, dword [esp + 0x300]
mov ebp, dword [ebx + 0xc]
lea edx, [edi + ebp]
jmp 0x4a4f1c
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x1e4], eax
xor eax, eax
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x1e4]
jmp 0x4a4ece
cmp esi, 6
jne 0x4a3886
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a3831
mov esi, dword [esp + 0x2dc]
mov edi, dword [esi + 4]
mov dword [esp + 0x11c], edi
mov esi, dword [esi]
mov dword [esp + 0x2f0], esi
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x35], al
xchg esi, eax
movzx edi, byte [ebx + 0x344]
xchg edi, eax
mov byte [esp + 0x31], al
xchg edi, eax
movzx ebx, byte [ebx + 0x346]
mov byte [esp + 0x24], bl
mov dword [esp + 0x204], eax
xor eax, eax
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x68], eax
mov dword [esp + 0x1fc], ecx
xor ecx, ecx
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x204]
mov ecx, dword [esp + 0x1fc]
jmp 0x4a4cd3
mov esi, dword [esp + 0x2d8]
mov ebx, dword [esi + 4]
mov dword [esp + 0x118], ebx
mov esi, dword [esi]
mov dword [esp + 0x2ec], esi
mov dword [esp + 0x214], eax
xor eax, eax
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x64], eax
mov dword [esp + 0x20c], ecx
xor ecx, ecx
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0x214]
mov ecx, dword [esp + 0x20c]
jmp 0x4a4b8b
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x224], eax
xor eax, eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x224]
jmp 0x4a49a4
cmp esi, 0xb
jg 0x4a39a5
cmp esi, 9
jg 0x4a38f9
cmp esi, 8
jne 0x4a38d9
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x234], eax
xor eax, eax
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x234]
jmp 0x4a47de
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x244], eax
xor eax, eax
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x244]
jmp 0x4a461c
cmp esi, 0xa
jne 0x4a392e
mov esi, dword [esp + 0x2e0]
cmp dword [esi + 0x24], 0x100
je 0x4a44f5
mov dword [esp + 0x24c], eax
xor eax, eax
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x24c]
jmp 0x4a4592
mov esi, dword [esp + 0x2dc]
mov ebx, dword [esi + 4]
mov edx, dword [esi]
mov esi, dword [esi + 8]
mov edi, dword [esp + 0x114]
cmp edi, ebx
ja 0x4a44ec
sub ebx, edi
sub esi, edi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edi
add edx, esi
cmp ebx, ebp
jg 0x4a3963
mov ebp, ebx
mov ebx, dword [esp + 0x2e4]
cmp edx, ebx
je 0x4a3993
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.00453460
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x2f8]
mov edi, dword [esp + 0x114]
mov ebx, dword [esp + 0x2dc]
mov ebp, dword [ebx + 0xc]
lea edx, [edi + ebp]
jmp 0x4a340c
cmp esi, 0xd
jg 0x4a3a38
cmp esi, 0xc
jne 0x4a3a18
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a39f8
movzx esi, byte [ebx + 0x341]
shl esi, 8
movzx ebx, byte [ebx + 0x342]
or ebx, esi
mov word [esp + 0x50], bx
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x264], eax
xor eax, eax
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x264]
jmp 0x4a446c
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x26c], eax
xor eax, eax
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x26c]
jmp 0x4a4391
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x274], eax
xor eax, eax
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x274]
jmp 0x4a4270
cmp esi, 0xe
jne 0x4a3ad6
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a3ab6
movzx esi, byte [ebx + 0x341]
shl esi, 8
movzx edx, byte [ebx + 0x342]
or edx, esi
mov word [esp + 0x4e], dx
movzx esi, byte [ebx + 0x343]
shl esi, 8
movzx edx, byte [ebx + 0x344]
or edx, esi
mov word [esp + 0x48], dx
movzx esi, byte [ebx + 0x345]
shl esi, 8
movzx ebx, byte [ebx + 0x346]
or ebx, esi
mov word [esp + 0x40], bx
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x28c], eax
xor eax, eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x28c]
jmp 0x4a406b
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x294], eax
xor eax, eax
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x294]
jmp 0x4a3eed
cmp esi, 0xf
jne 0x4a3afb
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x29c], eax
xor eax, eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x29c]
jmp 0x4a3d1f
mov ebx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x114]
jmp 0x4a340c
mov dword [esp + 0x31c], 0
mov dword [esp + 0x320], 0
lea eax, [0x51e478]
mov dword [esp + 0x324], eax
lea eax, [0x51e130]
mov dword [esp + 0x328], eax
add esp, 0x304
ret
mov dword [esp + 0x2f8], ebx
mov dword [esp + 0x2c4], ebp
mov eax, dword [0x4cfeac]
cmp dword [0x4cfea8], ecx
je 0x4a3b65
xor eax, eax
jmp 0x4a3ba4
mov dword [esp + 0x2c0], edx
mov dword [esp + 0x2f4], ecx
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00403cc0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x2f4]
mov edx, dword [esp + 0x2c0]
mov ebx, dword [esp + 0x2f8]
mov ebp, dword [esp + 0x2c4]
test al, al
jne 0x4a3be1
mov eax, dword [0x4cfea4]
cmp dword [0x4cfea0], ecx
je 0x4a3bba
xor eax, eax
jmp 0x4a3bdd
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00403cc0
movzx eax, byte [esp + 0xc]
mov ebx, dword [esp + 0x2f8]
mov ebp, dword [esp + 0x2c4]
test al, al
je 0x4a3c18
mov dword [esp + 0x31c], 0
mov dword [esp + 0x320], 0
lea eax, [0x51e478]
mov dword [esp + 0x324], eax
lea eax, [0x51e118]
mov dword [esp + 0x328], eax
add esp, 0x304
ret
mov dword [esp + 0x31c], 0
mov dword [esp + 0x320], 0
mov dword [esp + 0x324], ebx
mov dword [esp + 0x328], ebp
add esp, 0x304
ret
mov eax, dword [esp + 0x104]
mov dword [esp + 0x31c], eax
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x320], eax
mov dword [esp + 0x324], 0
mov dword [esp + 0x328], 0
add esp, 0x304
ret
lea eax, [edi + edx*8 + 7]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x2c8]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov ebp, dword [esp + 0x110]
mov dword [esp + 8], ebp
movzx esi, word [esp + 0x56]
mov word [esp + 0xc], si
movzx esi, word [esp + 0x42]
mov word [esp + 0xe], si
movzx esi, word [esp + 0x4a]
mov word [esp + 0x10], si
shl ebx, 8
or eax, ebx
mov word [esp + 0x12], ax
call fcn.00493e50
mov eax, dword [esp + 0xb0]
inc eax
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0x110]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x2e4]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2cc]
mov ebx, dword [esp + 0x308]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0xb0]
cmp ebx, esi
jge 0x4a3deb
shl ebx, 3
cmp ebx, ebp
jae 0x4a3e3d
mov dword [esp + 0x128], ebx
mov edx, dword [esp + 0xb0]
lea esi, [edi + edx*8]
movzx esi, byte [esi]
inc ebx
cmp ebx, ebp
jae 0x4a3e34
shl esi, 8
lea ebx, [edi + edx*8 + 1]
movzx ebx, byte [ebx]
or ebx, esi
mov word [esp + 0x56], bx
mov esi, dword [esp + 0x128]
lea ebx, [esi + 2]
cmp ebx, ebp
jae 0x4a3e2b
lea ebx, [edi + edx*8 + 2]
movzx ebx, byte [ebx]
add esi, 3
cmp esi, ebp
jae 0x4a3e22
shl ebx, 8
lea esi, [edi + edx*8 + 3]
movzx esi, byte [esi]
or esi, ebx
mov word [esp + 0x42], si
mov ebx, dword [esp + 0x128]
lea esi, [ebx + 4]
cmp esi, ebp
jae 0x4a3e19
lea esi, [edi + edx*8 + 4]
movzx esi, byte [esi]
add ebx, 5
cmp ebx, ebp
jae 0x4a3e10
shl esi, 8
lea ebx, [edi + edx*8 + 5]
movzx ebx, byte [ebx]
or ebx, esi
mov word [esp + 0x4a], bx
mov esi, dword [esp + 0x128]
lea ebx, [esi + 6]
cmp ebx, ebp
jae 0x4a3e07
lea ebx, [edi + edx*8 + 6]
movzx ebx, byte [ebx]
add esi, 7
cmp esi, ebp
jb 0x4a3c7c
jmp 0x4a3dfe
mov ebx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x114]
jmp 0x4a340c
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
lea eax, [edi + esi*2 + 5]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x2bc]
mov dword [esp], ecx
mov edx, dword [esp + 0xb4]
mov dword [esp + 4], edx
mov ebp, dword [esp + 0x110]
mov dword [esp + 8], ebp
movzx esi, word [esp + 0x58]
mov word [esp + 0xc], si
movzx esi, word [esp + 0x44]
mov word [esp + 0xe], si
shl ebx, 8
or eax, ebx
mov word [esp + 0x10], ax
mov word [esp + 0x12], 0xffff
call fcn.004930b0
mov eax, dword [esp + 0xb4]
inc eax
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x2bc]
mov ebx, dword [esp + 0x2e4]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x110]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2cc]
mov ebx, dword [esp + 0x308]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0xb4]
cmp ebx, esi
jge 0x4a3f8d
lea edx, [ebx + ebx*2]
mov dword [esp + 0x128], edx
shl edx, 1
cmp edx, ebp
jae 0x4a3fcd
mov dword [esp + 0x124], edx
mov esi, dword [esp + 0x128]
lea ebx, [edi + esi*2]
movzx ebx, byte [ebx]
inc edx
cmp edx, ebp
jae 0x4a3fc4
shl ebx, 8
lea edx, [edi + esi*2 + 1]
movzx edx, byte [edx]
or edx, ebx
mov word [esp + 0x58], dx
mov ebx, dword [esp + 0x124]
lea edx, [ebx + 2]
cmp edx, ebp
jae 0x4a3fbb
lea edx, [edi + esi*2 + 2]
movzx edx, byte [edx]
add ebx, 3
cmp ebx, ebp
jae 0x4a3fb2
shl edx, 8
lea ebx, [edi + esi*2 + 3]
movzx ebx, byte [ebx]
or ebx, edx
mov word [esp + 0x44], bx
mov edx, dword [esp + 0x124]
lea ebx, [edx + 4]
cmp ebx, ebp
jae 0x4a3fa9
lea ebx, [edi + esi*2 + 4]
movzx ebx, byte [ebx]
add edx, 5
cmp edx, ebp
jb 0x4a3e46
jmp 0x4a3fa0
mov ebx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x114]
jmp 0x4a340c
mov eax, edx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, edx
mov ecx, ebp
call fcn.00452bc0
mov eax, edx
mov ecx, ebp
call fcn.00452bc0
mov eax, edx
mov ecx, ebp
call fcn.00452bc0
mov ecx, dword [esp + 0x2c8]
mov dword [esp], ecx
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x110]
mov dword [esp + 8], esi
mov word [esp + 0xc], dx
mov word [esp + 0xe], ax
mov word [esp + 0x10], bx
movzx eax, word [esp + 0x52]
mov word [esp + 0x12], ax
call fcn.00493e50
mov eax, dword [esp + 0xb8]
inc eax
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x2c8]
movzx ebx, word [esp + 0x4e]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x2e4]
mov edi, dword [esp + 0x110]
mov ecx, dword [esp + 0x2f8]
movzx edx, word [esp + 0x48]
movzx ebx, word [esp + 0x40]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0xb8]
cmp ebx, esi
jge 0x4a4195
lea esi, [ebx + ebx*2]
mov dword [esp + 0x128], esi
shl esi, 1
cmp esi, ebp
jae 0x4a41ce
mov dword [esp + 0x124], esi
mov ebx, dword [esp + 0x128]
lea edx, [edi + ebx*2]
movzx edx, byte [edx]
inc esi
cmp esi, ebp
jae 0x4a41c5
shl edx, 8
lea esi, [edi + ebx*2 + 1]
movzx esi, byte [esi]
or esi, edx
mov word [esp + 0x5a], si
mov edx, dword [esp + 0x124]
lea esi, [edx + 2]
cmp esi, ebp
jae 0x4a41bc
lea esi, [edi + ebx*2 + 2]
movzx esi, byte [esi]
add edx, 3
cmp edx, ebp
jae 0x4a41b3
shl esi, 8
lea edx, [edi + ebx*2 + 3]
movzx edx, byte [edx]
or edx, esi
mov word [esp + 0x46], dx
mov esi, dword [esp + 0x124]
lea edx, [esi + 4]
cmp edx, ebp
jae 0x4a41aa
lea edx, [edi + ebx*2 + 4]
movzx edx, byte [edx]
add esi, 5
cmp esi, ebp
jae 0x4a41a1
shl edx, 8
lea ebx, [edi + ebx*2 + 5]
movzx ebx, byte [ebx]
or ebx, edx
movzx edx, word [esp + 0x5a]
movzx esi, word [esp + 0x4e]
cmp dx, si
jne 0x4a416c
movzx eax, word [esp + 0x46]
movzx ecx, word [esp + 0x48]
cmp ax, cx
jne 0x4a4165
movzx ecx, word [esp + 0x40]
cmp bx, cx
jne 0x4a4176
mov word [esp + 0x27c], ax
xor eax, eax
mov word [esp + 0x52], ax
movzx eax, word [esp + 0x27c]
jmp 0x4a3fd6
movzx ecx, word [esp + 0x40]
jmp 0x4a4176
movzx eax, word [esp + 0x46]
movzx ecx, word [esp + 0x40]
mov word [esp + 0x284], ax
mov eax, 0xffffffff
mov word [esp + 0x52], ax
movzx eax, word [esp + 0x284]
jmp 0x4a3fd6
mov edx, dword [esp + 0x2cc]
jmp 0x4a3f8d
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
mov eax, edx
mov ecx, ebp
call fcn.00452bc0
mov eax, edx
mov ecx, ebp
call fcn.00452bc0
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
lea eax, [edi + edx*4 + 3]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x2c8]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov ebp, dword [esp + 0x110]
mov dword [esp + 8], ebp
movzx esi, word [esp + 0x4c]
mov word [esp + 0xc], si
mov word [esp + 0xe], si
mov word [esp + 0x10], si
shl ebx, 8
or eax, ebx
mov word [esp + 0x12], ax
call fcn.00493e50
mov eax, dword [esp + 0xbc]
inc eax
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0x2e4]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x110]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2cc]
mov ebx, dword [esp + 0x308]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0xbc]
cmp ebx, esi
jge 0x4a42ce
shl ebx, 2
cmp ebx, ebp
jae 0x4a42fc
mov dword [esp + 0x128], ebx
mov edx, dword [esp + 0xbc]
lea esi, [edi + edx*4]
movzx esi, byte [esi]
inc ebx
cmp ebx, ebp
jae 0x4a42f3
shl esi, 8
lea ebx, [edi + edx*4 + 1]
movzx ebx, byte [ebx]
or ebx, esi
mov word [esp + 0x4c], bx
mov esi, dword [esp + 0x128]
lea ebx, [esi + 2]
cmp ebx, ebp
jae 0x4a42ea
lea ebx, [edi + edx*4 + 2]
movzx ebx, byte [ebx]
add esi, 3
cmp esi, ebp
jb 0x4a41d7
jmp 0x4a42e1
mov ebx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x114]
jmp 0x4a340c
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
lea eax, [edi + edx*2 + 1]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x2d0]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x110]
mov dword [esp + 8], ebx
shl esi, 8
or eax, esi
mov word [esp + 0xc], ax
call fcn.004947c0
mov eax, dword [esp + 0xc0]
inc eax
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x2d0]
mov ebx, dword [esp + 0x12c]
mov ebp, dword [esp + 0x110]
mov esi, dword [esp + 0x2e4]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2cc]
mov ebx, dword [esp + 0x308]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0xc0]
cmp ebx, esi
jge 0x4a43ba
shl ebx, 1
cmp ebx, ebp
jae 0x4a43d6
mov edx, dword [esp + 0xc0]
lea esi, [edi + edx*2]
movzx esi, byte [esi]
inc ebx
cmp ebx, ebp
jb 0x4a4305
jmp 0x4a43cd
mov ebx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x114]
jmp 0x4a340c
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, dword [esp + 0x2c8]
mov dword [esp], eax
mov dword [esp + 4], esi
mov ecx, dword [esp + 0x110]
mov dword [esp + 8], ecx
mov word [esp + 0xc], dx
mov word [esp + 0xe], dx
mov word [esp + 0x10], dx
movzx edx, word [esp + 0x54]
mov word [esp + 0x12], dx
call fcn.00493e50
mov eax, dword [esp + 0xc4]
inc eax
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x2c8]
movzx ebx, word [esp + 0x50]
mov ebp, dword [esp + 0x110]
mov esi, dword [esp + 0x2e4]
mov edi, dword [esp + 0x12c]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2cc]
mov ebp, edi
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0xc4]
cmp edx, esi
jge 0x4a44ce
shl edx, 1
cmp edx, ebp
jae 0x4a44e3
mov esi, dword [esp + 0xc4]
lea ebx, [edi + esi*2]
movzx ebx, byte [ebx]
inc edx
cmp edx, ebp
jae 0x4a44da
shl ebx, 8
lea edx, [edi + esi*2 + 1]
movzx edx, byte [edx]
or edx, ebx
movzx ebx, word [esp + 0x50]
cmp dx, bx
jne 0x4a44b8
mov dword [esp + 0x254], eax
xor eax, eax
mov word [esp + 0x54], ax
jmp 0x4a43df
mov dword [esp + 0x25c], eax
mov eax, 0xffffffff
mov word [esp + 0x54], ax
jmp 0x4a43df
mov edx, dword [esp + 0x2cc]
jmp 0x4a43ba
mov eax, edx
mov ecx, ebp
call fcn.00452bc0
mov eax, edx
mov ecx, ebp
call fcn.00452bc0
mov eax, edi
mov ecx, ebx
call fcn.00452c20
mov ebx, dword [esi + 4]
mov edx, dword [esi]
mov esi, dword [esi + 8]
mov edi, dword [esp + 0x114]
cmp edi, ebx
ja 0x4a4568
sub ebx, edi
sub esi, edi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edi
add edx, esi
cmp ebx, ebp
jg 0x4a451f
mov ebp, ebx
mov ebx, dword [esp + 0x2e4]
cmp edx, ebx
je 0x4a454f
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.00453460
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x2f8]
mov edi, dword [esp + 0x114]
mov ebp, dword [esp + 0x2e0]
mov esi, dword [ebp + 0xc]
lea edx, [edi + esi]
mov ebx, dword [esp + 0x2dc]
jmp 0x4a340c
mov eax, edi
mov ecx, ebx
call fcn.00452c20
inc ebx
mov ebp, dword [esp + 0x7c]
mov edi, dword [esp + 0x2e4]
mov ebp, dword [esp + 0x12c]
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0x308]
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0x7c]
cmp ebx, edi
jge 0x4a45d4
mov edi, dword [esi + 0x28]
mov esi, dword [esi + 0x24]
cmp ebx, ebp
jae 0x4a45f0
mov ebp, dword [esp + 0x2e4]
movzx ebp, byte [ebx + ebp]
cmp esi, ebp
jg 0x4a45cb
inc ebp
cmp edi, ebp
jb 0x4a45e7
mov esi, dword [esp + 0x2e0]
mov dword [esi + 0x24], ebp
jmp 0x4a4571
mov esi, dword [esp + 0x2e0]
jmp 0x4a4571
mov ebx, dword [esp + 0x308]
mov edi, dword [esp + 0x2e4]
jmp 0x4a44f5
mov ecx, ebp
mov edx, edi
call fcn.00452c00
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
lea ebx, [esi + 2]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x2e0]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xcc], ebx
mov ebx, dword [esp + 0x308]
mov ebx, dword [esp + 0xcc]
cmp ebx, esi
jge 0x4a466a
shr ebx, 0x1f
mov esi, dword [esp + 0xcc]
add ebx, esi
sar ebx, 1
cmp ebx, ebp
jae 0x4a47b2
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x23c], eax
xor eax, eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x23c]
jmp 0x4a46ab
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0xcc]
jmp 0x4a45f9
mov ebx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x114]
jmp 0x4a340c
mov ebx, dword [esp + 0x8c]
inc ebx
movzx ebp, byte [esp + 0x26]
shl ebp, 4
mov esi, dword [esp + 0xcc]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0x8c], ebx
mov ebx, ebp
mov ebp, dword [esp + 0x12c]
mov edi, dword [esp + 0x8c]
cmp edi, 2
jge 0x4a45f9
lea ebp, [edi + esi]
mov esi, dword [esp + 0x7c]
cmp esi, ebp
jle 0x4a465a
mov byte [esp + 0x26], bl
shr bl, 4
mov byte [esp + 0x32], bl
mov esi, dword [esp + 0x2e0]
mov edi, dword [esi + 0x28]
movzx ebx, bl
cmp dword [esi + 0x24], ebx
jg 0x4a46ef
inc ebx
cmp edi, ebx
jb 0x4a47a9
mov dword [esi + 0x24], ebx
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
mov dword [esp + 0x128], edi
mov edi, dword [esi + 0x18]
mov esi, dword [esi + 0x1c]
cmp ebx, ebp
jg 0x4a4794
cmp edi, ebp
jle 0x4a4788
mov dword [esp + 0x124], ebx
mov edi, dword [esp + 0x110]
mov ebx, dword [esp + 0x128]
cmp edi, ebx
jl 0x4a467d
cmp edi, esi
jge 0x4a467d
mov dword [esp + 0x128], ebp
nop
mov esi, dword [esp + 0x2e0]
mov ebp, dword [esi + 4]
mov dword [esp + 0x120], ebp
mov ebp, dword [esi]
sub edi, ebx
imul edi, dword [esi + 0xc]
mov ebx, dword [esp + 0x128]
mov esi, dword [esp + 0x124]
sub ebx, esi
add ebx, edi
mov esi, dword [esp + 0x120]
cmp esi, ebx
jbe 0x4a47a0
movzx esi, byte [esp + 0x32]
xchg esi, eax
mov byte [ebp + ebx], al
xchg esi, eax
mov edi, dword [esp + 0x110]
jmp 0x4a467d
mov edi, dword [esp + 0x110]
jmp 0x4a467d
mov edi, dword [esp + 0x110]
jmp 0x4a467d
mov eax, ebx
mov ecx, esi
call fcn.00452bc0
mov ecx, ebx
mov edx, edi
call fcn.00452c00
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
lea ebx, [esi + 4]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x2e0]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xd0], ebx
mov ebx, dword [esp + 0x308]
mov ebx, dword [esp + 0xd0]
cmp ebx, esi
jge 0x4a4830
sar ebx, 0x1f
shr ebx, 0x1e
mov esi, dword [esp + 0xd0]
add ebx, esi
sar ebx, 2
cmp ebx, ebp
jae 0x4a4978
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x22c], eax
xor eax, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x22c]
jmp 0x4a4871
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0xd0]
jmp 0x4a47bb
mov ebx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x114]
jmp 0x4a340c
mov ebx, dword [esp + 0x90]
inc ebx
movzx ebp, byte [esp + 0x27]
shl ebp, 2
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0x90], ebx
mov ebx, ebp
mov ebp, dword [esp + 0x12c]
mov edi, dword [esp + 0x90]
cmp edi, 4
jge 0x4a47bb
lea ebp, [edi + esi]
mov esi, dword [esp + 0x7c]
cmp esi, ebp
jle 0x4a4820
mov byte [esp + 0x27], bl
shr bl, 6
mov byte [esp + 0x33], bl
mov esi, dword [esp + 0x2e0]
mov edi, dword [esi + 0x28]
movzx ebx, bl
cmp dword [esi + 0x24], ebx
jg 0x4a48b5
inc ebx
cmp edi, ebx
jb 0x4a496f
mov dword [esi + 0x24], ebx
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
mov dword [esp + 0x128], edi
mov edi, dword [esi + 0x18]
mov esi, dword [esi + 0x1c]
cmp ebx, ebp
jg 0x4a495a
cmp edi, ebp
jle 0x4a494e
mov dword [esp + 0x124], ebx
mov edi, dword [esp + 0x110]
mov ebx, dword [esp + 0x128]
cmp edi, ebx
jl 0x4a4843
cmp edi, esi
jge 0x4a4843
mov dword [esp + 0x128], ebp
nop
mov esi, dword [esp + 0x2e0]
mov ebp, dword [esi + 4]
mov dword [esp + 0x120], ebp
mov ebp, dword [esi]
sub edi, ebx
imul edi, dword [esi + 0xc]
mov ebx, dword [esp + 0x128]
mov esi, dword [esp + 0x124]
sub ebx, esi
add ebx, edi
mov esi, dword [esp + 0x120]
cmp esi, ebx
jbe 0x4a4966
movzx esi, byte [esp + 0x33]
xchg esi, eax
mov byte [ebp + ebx], al
xchg esi, eax
mov edi, dword [esp + 0x110]
jmp 0x4a4843
mov edi, dword [esp + 0x110]
jmp 0x4a4843
mov edi, dword [esp + 0x110]
jmp 0x4a4843
mov eax, ebx
mov ecx, esi
call fcn.00452bc0
mov ecx, ebx
mov edx, edi
call fcn.00452c00
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
lea ebx, [esi + 8]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x2e0]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xd4], ebx
mov ebx, dword [esp + 0x308]
mov ebx, dword [esp + 0xd4]
cmp ebx, esi
jge 0x4a49f6
sar ebx, 0x1f
shr ebx, 0x1d
mov esi, dword [esp + 0xd4]
add ebx, esi
sar ebx, 3
cmp ebx, ebp
jae 0x4a4b3d
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x21c], eax
xor eax, eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x21c]
jmp 0x4a4a36
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0xd4]
jmp 0x4a4981
mov ebx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x114]
jmp 0x4a340c
mov ebx, dword [esp + 0x94]
inc ebx
movzx ebp, byte [esp + 0x28]
shl ebp, 1
mov esi, dword [esp + 0xd4]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0x94], ebx
mov ebx, ebp
mov ebp, dword [esp + 0x12c]
mov edi, dword [esp + 0x94]
cmp edi, 8
jge 0x4a4981
lea ebp, [edi + esi]
mov esi, dword [esp + 0x7c]
cmp esi, ebp
jle 0x4a49e6
mov byte [esp + 0x28], bl
shr bl, 7
mov byte [esp + 0x34], bl
mov esi, dword [esp + 0x2e0]
mov edi, dword [esi + 0x28]
movzx ebx, bl
cmp dword [esi + 0x24], ebx
jg 0x4a4a7a
inc ebx
cmp edi, ebx
jb 0x4a4b34
mov dword [esi + 0x24], ebx
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
mov dword [esp + 0x128], edi
mov edi, dword [esi + 0x18]
mov esi, dword [esi + 0x1c]
cmp ebx, ebp
jg 0x4a4b1f
cmp edi, ebp
jle 0x4a4b13
mov dword [esp + 0x124], ebx
mov edi, dword [esp + 0x110]
mov ebx, dword [esp + 0x128]
cmp edi, ebx
jl 0x4a4a09
cmp edi, esi
jge 0x4a4a09
mov dword [esp + 0x128], ebp
nop
mov esi, dword [esp + 0x2e0]
mov ebp, dword [esi + 4]
mov dword [esp + 0x120], ebp
mov ebp, dword [esi]
sub edi, ebx
imul edi, dword [esi + 0xc]
mov ebx, dword [esp + 0x128]
mov esi, dword [esp + 0x124]
sub ebx, esi
add ebx, edi
mov esi, dword [esp + 0x120]
cmp esi, ebx
jbe 0x4a4b2b
movzx esi, byte [esp + 0x34]
xchg esi, eax
mov byte [ebp + ebx], al
xchg esi, eax
mov edi, dword [esp + 0x110]
jmp 0x4a4a09
mov edi, dword [esp + 0x110]
jmp 0x4a4a09
mov edi, dword [esp + 0x110]
jmp 0x4a4a09
mov eax, ebx
mov ecx, esi
call fcn.00452bc0
mov ecx, ebx
mov edx, edi
call fcn.00452c00
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov byte [edi + ebp + 3], 0xff
mov ebx, dword [esp + 0xd8]
inc ebx
add edi, 4
add edx, 3
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x2ec]
mov dword [esp + 0xd8], ebx
mov dword [esp + 0x64], edi
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x2cc]
mov ebx, dword [esp + 0x118]
mov edi, dword [esp + 0x2e4]
mov edx, dword [esp + 0xd8]
mov esi, dword [esp + 0x7c]
cmp edx, esi
jge 0x4a4c2c
mov esi, dword [esp + 0x5c]
cmp esi, ebp
jae 0x4a4c83
movzx edx, byte [esi + edi]
mov edi, dword [esp + 0x64]
cmp edi, ebx
jae 0x4a4c7a
mov ebx, dword [esp + 0x2ec]
mov byte [ebx + edi], dl
lea edx, [esi + 1]
cmp edx, ebp
jae 0x4a4c71
lea edx, [edi + 1]
mov ebp, dword [esp + 0x2e4]
movzx ebp, byte [esi + ebp + 1]
mov esi, dword [esp + 0x118]
cmp esi, edx
jbe 0x4a4c68
xchg ebp, eax
mov byte [edi + ebx + 1], al
xchg ebp, eax
mov edx, dword [esp + 0x5c]
lea ebp, [edx + 2]
mov ebx, dword [esp + 0x12c]
cmp ebp, ebx
jae 0x4a4c5f
lea ebp, [edi + 2]
mov ebx, dword [esp + 0x2e4]
movzx ebx, byte [edx + ebx + 2]
cmp esi, ebp
jbe 0x4a4c56
mov ebp, dword [esp + 0x2ec]
mov byte [edi + ebp + 2], bl
lea ebx, [edi + 3]
cmp esi, ebx
ja 0x4a4b46
jmp 0x4a4c4d
mov edx, dword [esp + 0x2d8]
mov ebx, dword [edx + 0xc]
mov ebp, dword [esp + 0x114]
add ebx, ebp
mov edx, ebx
mov ebx, dword [esp + 0x2dc]
jmp 0x4a340c
mov eax, ebx
mov ecx, esi
call fcn.00452bc0
mov eax, ebp
mov ecx, esi
call fcn.00452bc0
mov eax, ebp
mov ecx, ebx
call fcn.00452bc0
mov eax, edx
mov ecx, esi
call fcn.00452bc0
mov eax, edx
mov ecx, ebp
call fcn.00452bc0
mov eax, edi
mov ecx, ebx
call fcn.00452bc0
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
movzx edx, byte [esp + 0x30]
mov byte [ebp + esi + 3], dl
mov edx, dword [esp + 0xdc]
inc edx
add ebp, 4
mov edi, dword [esp + 0x60]
add edi, 3
movzx ebx, byte [esp + 0x24]
movzx esi, byte [esp + 0x35]
mov dword [esp + 0xdc], edx
mov dword [esp + 0x68], ebp
mov dword [esp + 0x60], edi
mov edx, dword [esp + 0x2cc]
mov ebp, dword [esp + 0x12c]
movzx edi, byte [esp + 0x31]
mov edx, dword [esp + 0xdc]
mov ebx, dword [esp + 0x7c]
cmp edx, ebx
jge 0x4a4dd4
mov ebx, dword [esp + 0x60]
cmp ebx, ebp
jae 0x4a4e2d
mov edx, dword [esp + 0x2e4]
movzx edi, byte [ebx + edx]
lea esi, [ebx + 1]
cmp esi, ebp
jae 0x4a4e24
movzx esi, byte [ebx + edx + 1]
xchg esi, eax
mov byte [esp + 0x36], al
xchg esi, eax
lea esi, [ebx + 2]
cmp esi, ebp
jae 0x4a4e1b
movzx esi, byte [ebx + edx + 2]
movzx edx, byte [esp + 0x35]
xchg edi, eax
cmp al, dl
xchg edi, eax
jne 0x4a4d6a
movzx edx, byte [esp + 0x36]
movzx ebp, byte [esp + 0x31]
xchg ebp, eax
cmp dl, al
xchg ebp, eax
jne 0x4a4d63
movzx ebp, byte [esp + 0x24]
xchg esi, eax
xchg ebp, ebx
cmp al, bl
xchg ebp, ebx
xchg esi, eax
jne 0x4a4d74
mov dword [esp + 0x1ec], eax
xor eax, eax
mov byte [esp + 0x30], al
mov eax, dword [esp + 0x1ec]
jmp 0x4a4d8b
movzx ebp, byte [esp + 0x24]
jmp 0x4a4d74
movzx edx, byte [esp + 0x36]
movzx ebp, byte [esp + 0x24]
mov dword [esp + 0x1f4], eax
mov eax, 0xffffffff
mov byte [esp + 0x30], al
mov eax, dword [esp + 0x1f4]
mov ebp, dword [esp + 0x68]
mov ebx, dword [esp + 0x11c]
cmp ebp, ebx
jae 0x4a4e12
xchg esi, eax
mov byte [esp + 0x29], al
xchg esi, eax
mov esi, dword [esp + 0x2f0]
xchg edi, eax
mov byte [esi + ebp], al
xchg edi, eax
lea edi, [ebp + 1]
cmp ebx, edi
jbe 0x4a4e09
mov byte [ebp + esi + 1], dl
lea edx, [ebp + 2]
cmp ebx, edx
jbe 0x4a4e00
movzx edx, byte [esp + 0x29]
mov byte [ebp + esi + 2], dl
lea edx, [ebp + 3]
cmp ebx, edx
ja 0x4a4c8c
jmp 0x4a4df7
mov ebp, dword [esp + 0x2dc]
mov edi, dword [ebp + 0xc]
mov ebp, dword [esp + 0x114]
add ebp, edi
mov edx, dword [esp + 0x2d8]
mov esi, ebx
mov ebx, ebp
jmp 0x4a4c3f
mov eax, edx
mov ecx, ebx
call fcn.00452bc0
mov eax, edx
mov ecx, ebx
call fcn.00452bc0
mov eax, edi
mov ecx, ebx
call fcn.00452bc0
mov eax, ebp
mov ecx, ebx
call fcn.00452bc0
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
lea eax, [edi + edx*2 + 1]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x2dc]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x110]
mov dword [esp + 8], ebx
xchg esi, eax
mov byte [esp + 0xc], al
xchg esi, eax
xchg esi, eax
mov byte [esp + 0xd], al
xchg esi, eax
xchg esi, eax
mov byte [esp + 0xe], al
xchg esi, eax
mov byte [esp + 0xf], al
call fcn.00493760
mov eax, dword [esp + 0xe0]
inc eax
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0x12c]
mov ebp, dword [esp + 0x110]
mov esi, dword [esp + 0x2e4]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2cc]
mov ebx, dword [esp + 0x308]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0xe0]
cmp ebx, esi
jge 0x4a4ef7
shl ebx, 1
cmp ebx, ebp
jae 0x4a4f13
mov edx, dword [esp + 0xe0]
lea esi, [edi + edx*2]
movzx esi, byte [esi]
inc ebx
cmp ebx, ebp
jb 0x4a4e36
jmp 0x4a4f0a
mov ebx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x114]
jmp 0x4a340c
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov ebx, dword [esp + 0x2dc]
jmp 0x4a340c
mov eax, edi
mov ecx, ebx
call fcn.00452c20
mov ecx, dword [esp + 0x2dc]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov edx, dword [esp + 0x110]
mov dword [esp + 8], edx
mov byte [esp + 0xc], al
mov byte [esp + 0xd], al
mov byte [esp + 0xe], al
movzx eax, byte [esp + 0x3b]
mov byte [esp + 0xf], al
call fcn.00493760
mov eax, dword [esp + 0xe4]
inc eax
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x2dc]
movzx ebx, byte [esp + 0x37]
mov ebp, dword [esp + 0x110]
mov esi, dword [esp + 0x2e4]
mov edi, dword [esp + 0x12c]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2cc]
mov ebx, dword [esp + 0x308]
mov ebp, edi
movzx esi, byte [esp + 0x37]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0xe4]
mov edx, dword [esp + 0x7c]
cmp ebx, edx
jge 0x4a5018
cmp ebx, ebp
jae 0x4a502b
movzx eax, byte [ebx + edi]
xchg esi, ebx
cmp al, bl
xchg esi, ebx
jne 0x4a4ffb
mov byte [esp + 0x1cc], al
xor eax, eax
mov byte [esp + 0x3b], al
movzx eax, byte [esp + 0x1cc]
jmp 0x4a4f31
mov byte [esp + 0x1d4], al
mov eax, 0xffffffff
mov byte [esp + 0x3b], al
movzx eax, byte [esp + 0x1d4]
jmp 0x4a4f31
mov ebx, dword [esp + 0x300]
mov edx, dword [esp + 0x114]
jmp 0x4a4f1c
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
add edx, 2
mov ebx, dword [esp + 0x300]
mov edi, dword [esp + 0x110]
mov ebx, dword [esp + 0x308]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xe8], edx
mov edx, dword [esp + 0x2cc]
mov ebx, dword [esp + 0xe8]
cmp ebx, esi
jge 0x4a50a8
shr ebx, 0x1f
mov edx, dword [esp + 0xe8]
add ebx, edx
sar ebx, 1
cmp ebx, ebp
jae 0x4a51bb
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x1bc], eax
xor eax, eax
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x1bc]
jmp 0x4a50f4
mov ebp, dword [esp + 0x12c]
jmp 0x4a5034
mov ebx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x114]
jmp 0x4a340c
mov edx, dword [esp + 0x98]
inc edx
movzx ebx, byte [esp + 0x2a]
shl ebx, 4
mov ebp, dword [esp + 0xe8]
mov edi, dword [esp + 0x7c]
mov ebp, dword [esp + 0x12c]
mov esi, edi
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0xe8]
mov edi, dword [esp + 0x98]
cmp edi, 2
jge 0x4a5034
lea ebp, [edi + edx]
cmp esi, ebp
jle 0x4a509f
mov byte [esp + 0x2a], bl
shr bl, 4
mov byte [esp + 0x3f], bl
shl ebx, 4
movzx esi, byte [esp + 0x3f]
add ebx, esi
mov byte [esp + 0x25], bl
mov esi, dword [esp + 0x300]
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0x18]
mov esi, dword [esi + 0x1c]
cmp ebx, ebp
jg 0x4a519f
cmp edi, ebp
jle 0x4a5196
mov edi, dword [esp + 0x110]
cmp edi, edx
jl 0x4a51a6
cmp edi, esi
jge 0x4a51a6
mov dword [esp + 0x128], ebx
nop
mov esi, dword [esp + 0x300]
mov ebx, dword [esi + 4]
mov dword [esp + 0x124], ebx
mov ebx, dword [esi]
sub edi, edx
imul edi, dword [esi + 0xc]
mov edx, dword [esp + 0x128]
sub ebp, edx
lea edx, [ebp + edi]
mov ebp, dword [esp + 0x124]
cmp ebp, edx
jbe 0x4a51b2
movzx ebp, byte [esp + 0x25]
xchg ebp, eax
mov byte [ebx + edx], al
xchg ebp, eax
jmp 0x4a50bb
mov edi, dword [esp + 0x110]
jmp 0x4a51a6
mov edi, dword [esp + 0x110]
mov esi, dword [esp + 0x300]
jmp 0x4a50bb
mov eax, edx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
lea ebx, [esi + 2]
mov esi, dword [esp + 0x2dc]
movzx edi, byte [esp + 0x38]
mov edx, dword [esp + 0x2cc]
mov esi, edi
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xec], ebx
mov ebx, dword [esp + 0x308]
mov ebx, dword [esp + 0xec]
mov edx, dword [esp + 0x7c]
cmp ebx, edx
jge 0x4a5236
shr ebx, 0x1f
mov esi, dword [esp + 0xec]
add ebx, esi
sar ebx, 1
cmp ebx, ebp
jae 0x4a5340
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x1ac], eax
xor eax, eax
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x1ac]
jmp 0x4a52d1
mov edx, dword [esp + 0x2cc]
mov esi, dword [esp + 0x7c]
jmp 0x4a50a8
mov ecx, dword [esp + 0x2dc]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov edx, dword [esp + 0x110]
mov dword [esp + 8], edx
mov byte [esp + 0xc], al
mov byte [esp + 0xd], al
mov byte [esp + 0xe], al
movzx eax, byte [esp + 0x3c]
mov byte [esp + 0xf], al
call fcn.00493760
mov eax, dword [esp + 0x9c]
inc eax
movzx ebx, byte [esp + 0x2b]
shl ebx, 4
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x2dc]
movzx esi, byte [esp + 0x38]
mov edi, dword [esp + 0x110]
mov ecx, dword [esp + 0x2f8]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0xec]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x130]
mov edi, dword [esp + 0x9c]
cmp edi, 2
jge 0x4a51c4
add edi, esi
cmp edx, edi
jle 0x4a51c4
mov byte [esp + 0x2b], bl
shr bl, 4
mov byte [esp + 0x3f], bl
shl ebx, 4
movzx eax, byte [esp + 0x3f]
add eax, ebx
movzx ebx, byte [esp + 0x38]
cmp bl, al
jne 0x4a5323
mov byte [esp + 0x19c], al
xor eax, eax
mov byte [esp + 0x3c], al
movzx eax, byte [esp + 0x19c]
jmp 0x4a5246
mov byte [esp + 0x1a4], al
mov eax, 0xffffffff
mov byte [esp + 0x3c], al
movzx eax, byte [esp + 0x1a4]
jmp 0x4a5246
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
add edx, 4
mov ebx, dword [esp + 0x300]
mov edi, dword [esp + 0x110]
mov ebx, dword [esp + 0x308]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xf0], edx
mov edx, dword [esp + 0x2cc]
mov ebx, dword [esp + 0xf0]
cmp ebx, esi
jge 0x4a53c1
sar ebx, 0x1f
shr ebx, 0x1e
mov edx, dword [esp + 0xf0]
add ebx, edx
sar ebx, 2
cmp ebx, ebp
jae 0x4a54cd
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x18c], eax
xor eax, eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x18c]
jmp 0x4a540c
mov ebp, dword [esp + 0x12c]
jmp 0x4a5349
mov ebx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x114]
jmp 0x4a340c
mov edx, dword [esp + 0xa0]
inc edx
shl edi, 2
mov ebx, dword [esp + 0xf0]
mov ebp, dword [esp + 0x7c]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0xa0], edx
mov ebx, edi
mov edx, dword [esp + 0xf0]
mov edi, dword [esp + 0x2e4]
mov edi, dword [esp + 0xa0]
cmp edi, 4
jge 0x4a5349
lea ebp, [edi + edx]
cmp esi, ebp
jle 0x4a53b8
mov byte [esp + 0x2c], bl
mov esi, dword [esp + 0x300]
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
mov edi, dword [esi + 0x18]
mov esi, dword [esi + 0x1c]
cmp edx, ebp
jg 0x4a54ac
cmp edi, ebp
jle 0x4a54a3
mov edi, dword [esp + 0x110]
cmp edi, ebx
jl 0x4a54b3
cmp edi, esi
jge 0x4a54b3
mov dword [esp + 0x128], edx
nop
mov esi, dword [esp + 0x300]
mov edx, dword [esi + 4]
mov dword [esp + 0x124], edx
mov edx, dword [esi]
sub edi, ebx
imul edi, dword [esi + 0xc]
mov ebx, dword [esp + 0x128]
sub ebp, ebx
lea ebx, [ebp + edi]
mov ebp, dword [esp + 0x124]
cmp ebp, ebx
jbe 0x4a54c4
movzx ebp, byte [esp + 0x2c]
mov edi, ebp
xchg ebp, eax
shr al, 6
xchg ebp, eax
imul ebp, ebp, 0x55
xchg ebp, eax
mov byte [edx + ebx], al
xchg ebp, eax
jmp 0x4a53d4
mov edi, dword [esp + 0x110]
jmp 0x4a54b3
mov edi, dword [esp + 0x110]
mov esi, dword [esp + 0x300]
movzx edi, byte [esp + 0x2c]
jmp 0x4a53d4
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
lea ebx, [esi + 4]
mov esi, dword [esp + 0x2dc]
movzx edi, byte [esp + 0x39]
mov edx, dword [esp + 0x2cc]
mov esi, edi
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xf4], ebx
mov ebx, dword [esp + 0x308]
mov ebx, dword [esp + 0xf4]
mov edx, dword [esp + 0x7c]
cmp ebx, edx
jge 0x4a554c
sar ebx, 0x1f
shr ebx, 0x1e
mov esi, dword [esp + 0xf4]
add ebx, esi
sar ebx, 2
cmp ebx, ebp
jae 0x4a563b
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x17c], eax
xor eax, eax
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x17c]
jmp 0x4a55e7
mov edx, dword [esp + 0x2cc]
mov esi, dword [esp + 0x7c]
jmp 0x4a53c1
mov eax, dword [esp + 0x2dc]
mov dword [esp], eax
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x110]
mov dword [esp + 8], ecx
mov byte [esp + 0xc], bl
mov byte [esp + 0xd], bl
mov byte [esp + 0xe], bl
movzx edx, byte [esp + 0x3d]
mov byte [esp + 0xf], dl
call fcn.00493760
mov eax, dword [esp + 0xa4]
inc eax
movzx ebx, byte [esp + 0x2d]
shl ebx, 2
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x2dc]
movzx esi, byte [esp + 0x39]
mov edi, dword [esp + 0x110]
mov ecx, dword [esp + 0x2f8]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0xf4]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x130]
mov edi, dword [esp + 0xa4]
cmp edi, 4
jge 0x4a54d6
add edi, esi
cmp edx, edi
jle 0x4a54d6
mov byte [esp + 0x2d], bl
shr bl, 6
imul ebx, ebx, 0x55
movzx eax, byte [esp + 0x39]
cmp al, bl
jne 0x4a5626
mov byte [esp + 0x16c], al
xor eax, eax
mov byte [esp + 0x3d], al
jmp 0x4a555c
mov byte [esp + 0x174], al
mov eax, 0xffffffff
mov byte [esp + 0x3d], al
jmp 0x4a555c
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
add edx, 8
mov ebx, dword [esp + 0x300]
mov edi, dword [esp + 0x110]
mov ebx, dword [esp + 0x308]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xf8], edx
mov edx, dword [esp + 0x2cc]
mov ebx, dword [esp + 0xf8]
cmp ebx, esi
jge 0x4a56bc
sar ebx, 0x1f
shr ebx, 0x1d
mov edx, dword [esp + 0xf8]
add ebx, edx
sar ebx, 3
cmp ebx, ebp
jae 0x4a57ca
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x15c], eax
xor eax, eax
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x15c]
jmp 0x4a5706
mov ebp, dword [esp + 0x12c]
jmp 0x4a5644
mov ebx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x114]
jmp 0x4a340c
mov edx, dword [esp + 0xa8]
inc edx
shl edi, 1
mov ebx, dword [esp + 0xf8]
mov ebp, dword [esp + 0x7c]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0xa8], edx
mov ebx, edi
mov edx, dword [esp + 0xf8]
mov edi, dword [esp + 0x2e4]
mov edi, dword [esp + 0xa8]
cmp edi, 8
jge 0x4a5644
lea ebp, [edi + edx]
cmp esi, ebp
jle 0x4a56b3
mov byte [esp + 0x2e], bl
mov esi, dword [esp + 0x300]
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
mov edi, dword [esi + 0x18]
mov esi, dword [esi + 0x1c]
cmp edx, ebp
jg 0x4a57a9
cmp edi, ebp
jle 0x4a57a0
mov edi, dword [esp + 0x110]
cmp edi, ebx
jl 0x4a57b0
cmp edi, esi
jge 0x4a57b0
mov dword [esp + 0x128], edx
nop
mov esi, dword [esp + 0x300]
mov edx, dword [esi + 4]
mov dword [esp + 0x124], edx
mov edx, dword [esi]
sub edi, ebx
imul edi, dword [esi + 0xc]
mov ebx, dword [esp + 0x128]
sub ebp, ebx
lea ebx, [ebp + edi]
mov ebp, dword [esp + 0x124]
cmp ebp, ebx
jbe 0x4a57c1
movzx ebp, byte [esp + 0x2e]
mov edi, ebp
xchg ebp, eax
shr al, 7
xchg ebp, eax
xchg ebp, ebx
neg ebx
xchg ebp, ebx
xchg ebp, eax
mov byte [edx + ebx], al
xchg ebp, eax
jmp 0x4a56cf
mov edi, dword [esp + 0x110]
jmp 0x4a57b0
mov edi, dword [esp + 0x110]
mov esi, dword [esp + 0x300]
movzx edi, byte [esp + 0x2e]
jmp 0x4a56cf
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
lea ebx, [esi + 8]
mov esi, dword [esp + 0x2dc]
movzx edi, byte [esp + 0x3a]
mov edx, dword [esp + 0x2cc]
mov esi, edi
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xfc], ebx
mov ebx, dword [esp + 0x308]
mov ebx, dword [esp + 0xfc]
mov edx, dword [esp + 0x7c]
cmp ebx, edx
jge 0x4a5849
sar ebx, 0x1f
shr ebx, 0x1d
mov esi, dword [esp + 0xfc]
add ebx, esi
sar ebx, 3
cmp ebx, ebp
jae 0x4a5936
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x14c], eax
xor eax, eax
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x14c]
jmp 0x4a58e3
mov edx, dword [esp + 0x2cc]
mov esi, dword [esp + 0x7c]
jmp 0x4a56bc
mov eax, dword [esp + 0x2dc]
mov dword [esp], eax
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x110]
mov dword [esp + 8], ecx
mov byte [esp + 0xc], bl
mov byte [esp + 0xd], bl
mov byte [esp + 0xe], bl
movzx edx, byte [esp + 0x3e]
mov byte [esp + 0xf], dl
call fcn.00493760
mov eax, dword [esp + 0xac]
inc eax
movzx ebx, byte [esp + 0x2f]
shl ebx, 1
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x2dc]
movzx esi, byte [esp + 0x3a]
mov edi, dword [esp + 0x110]
mov ecx, dword [esp + 0x2f8]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0xfc]
mov edi, dword [esp + 0x2e4]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x130]
mov edi, dword [esp + 0xac]
cmp edi, 8
jge 0x4a57d3
add edi, esi
cmp edx, edi
jle 0x4a57d3
mov byte [esp + 0x2f], bl
shr bl, 7
neg ebx
movzx eax, byte [esp + 0x3a]
cmp al, bl
jne 0x4a5921
mov byte [esp + 0x13c], al
xor eax, eax
mov byte [esp + 0x3e], al
jmp 0x4a5859
mov byte [esp + 0x144], al
mov eax, 0xffffffff
mov byte [esp + 0x3e], al
jmp 0x4a5859
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, dword [esp + 0x2e8]
movzx ecx, byte [ebx + eax]
shr cl, 1
add ecx, ebp
mov byte [edi + ebx], cl
lea ecx, [ebx + 1]
mov ebp, dword [esp + 0x12c]
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0x2e8]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x2f8]
mov ebx, dword [esp + 0x70]
cmp ebx, esi
jge 0x4a598f
cmp ebx, ebp
jae 0x4a5a29
movzx ebp, byte [ebx + edi]
jb 0x4a593f
jmp 0x4a5a1b
mov ebx, dword [esp + 0x2e8]
jmp 0x4a59d4
mov eax, dword [esp + 0x2e8]
movzx ecx, byte [ebx + eax]
add ecx, esi
mov esi, ecx
shr ecx, 0x1f
add ecx, esi
sar ecx, 1
movzx esi, byte [esp + 0x3f]
add ecx, esi
mov byte [edi + ebx], cl
lea esi, [ebx + 1]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x2f8]
mov ebx, dword [esp + 0x2e8]
cmp esi, ebp
jge 0x4a3591
jae 0x4a5a12
mov dword [esp + 0x6c], esi
movzx ebx, byte [esi + edi]
mov byte [esp + 0x3f], bl
mov ebx, dword [esp + 0x78]
sub esi, ebx
cmp esi, ebp
jae 0x4a5a09
movzx esi, byte [esi + edi]
mov ebx, dword [esp + 0x6c]
cmp ebx, ebp
jb 0x4a5998
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, dword [esp + 0x12c]
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
movzx eax, byte [esi + edi]
add eax, ebx
mov byte [edi + esi], al
inc esi
mov ebx, dword [esp + 0x2e8]
mov eax, dword [esp + 0x130]
cmp esi, ebp
jge 0x4a3591
movzx ebx, byte [esi + ebx]
jb 0x4a5a32
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
mov eax, dword [esp + 0x2e4]
movzx ebx, byte [ebx + eax]
add ebx, edi
mov edi, dword [esp + 0x74]
mov byte [eax + edi], bl
lea ebx, [edi + 1]
mov eax, dword [esp + 0x130]
mov edi, dword [esp + 0x2e4]
cmp ebx, ebp
jge 0x4a3591
jae 0x4a5aa7
mov dword [esp + 0x74], ebx
movzx edi, byte [ebx + edi]
sub ebx, esi
cmp ebx, ebp
jb 0x4a5a61
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, 1
xor ecx, ecx
call fcn.00452c20
mov eax, 1
xor ecx, ecx
call fcn.00452c20
call fcn.0042e470
call fcn.0042e470
call fcn.00452bc0
nop
call fcn.00451710
jmp fcn.004a2890