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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x288]
cmp eax, dword [ecx + 8]
jbe 0x4a58a5
sub esp, 0x308
mov edx, dword [esp + 0x30c]
mov ebx, dword [edx + 0x18]
mov ebp, dword [edx + 0x1c]
cmp dword [edx + 0x33c], 1
jne 0x4a26a0
movzx esi, byte [esp + 0x31c]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4a26a8
mov edi, dword [0x5b4a60]
mov ecx, dword [0x5b4a64]
mov eax, dword [esp + 0x318]
cmp eax, ecx
jae 0x4a589f
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 0x4a589a
cmp ecx, 0xffffffff
je 0x4a2624
cdq
idiv ecx
jmp 0x4a2626
neg eax
sub ebp, edi
lea ecx, [esi + ebp - 1]
test esi, esi
je 0x4a5895
mov dword [esp + 0xe0], eax
mov eax, ecx
cmp esi, 0xffffffff
je 0x4a2647
cdq
idiv esi
jmp 0x4a2649
neg eax
mov ecx, dword [esp + 0xe0]
test ecx, ecx
je 0x4a2658
test eax, eax
jne 0x4a268b
mov dword [esp + 0x320], 0
mov dword [esp + 0x324], 0
mov dword [esp + 0x328], 0
mov dword [esp + 0x32c], 0
add esp, 0x308
ret
mov edx, dword [esp + 0x30c]
movzx esi, byte [esp + 0x31c]
mov ebx, ecx
mov ebp, eax
jmp 0x4a26a8
movzx esi, byte [esp + 0x31c]
mov dword [esp + 0xe0], ebx
mov dword [esp + 0x118], ebp
mov ecx, dword [edx + 0x30]
cmp ecx, 0xa
jg 0x4a2acb
cmp ecx, 5
jg 0x4a28d2
lea edi, [ecx - 1]
cmp edi, 3
ja 0x4a2807
mov eax, dword [edx + 0x20]
mov dword [esp + 0x120], eax
movzx ecx, byte [edx + 0x340]
test cl, cl
je 0x4a2746
test ebx, ebx
jge 0x4a26f6
mov ecx, ebx
xor edi, edi
jmp 0x4a26fc
mov ecx, ebx
xor ebx, ebx
mov edi, ecx
test ebp, ebp
jge 0x4a270f
mov dword [esp + 0x2b8], eax
xor eax, eax
mov dword [esp + 0x68], eax
jmp 0x4a271e
xor ebp, ebp
mov ebp, dword [esp + 0x118]
mov dword [esp + 0x68], ebp
xor ebp, ebp
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc], eax
call fcn.0049b1f0
mov eax, dword [esp + 0x10]
lea ecx, [0x512338]
mov edx, eax
xor ebx, ebx
jmp 0x4a279e
test ebx, ebx
jge 0x4a2750
mov ecx, ebx
xor edi, edi
jmp 0x4a2756
mov ecx, ebx
xor ebx, ebx
mov edi, ecx
test ebp, ebp
jge 0x4a2769
mov dword [esp + 0x2b0], eax
xor eax, eax
mov dword [esp + 0x64], eax
jmp 0x4a2778
xor ebp, ebp
mov ebp, dword [esp + 0x118]
mov dword [esp + 0x64], ebp
xor ebp, ebp
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
call fcn.0049b530
mov eax, dword [esp + 0x10]
lea ecx, [0x512300]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x2d4], ebp
xor esi, esi
mov dword [esp + 0x2e4], esi
xor ebp, ebp
mov dword [esp + 0x2c0], ebp
xor ebp, ebp
mov dword [esp + 0x2d8], ebp
mov dword [esp + 0x100], ecx
mov dword [esp + 0x2e0], eax
mov eax, ebx
mov ecx, edx
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xe0]
jmp 0x4a2f8a
cmp ecx, 5
jne 0x4a2f43
test ebx, ebx
jge 0x4a281a
mov eax, ebx
xor ecx, ecx
jmp 0x4a2820
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2828
xor edi, edi
jmp 0x4a2831
xor ebp, ebp
mov edi, dword [esp + 0x118]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.0049b1f0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
mov ecx, eax
xor edi, edi
xor eax, eax
mov dword [esp + 0x2d4], eax
xor edx, edx
mov dword [esp + 0x2e4], edx
xor ebx, ebx
mov dword [esp + 0x2c0], ebx
xor ebp, ebp
mov dword [esp + 0x2d8], ebp
lea esi, [0x512338]
mov dword [esp + 0x100], esi
mov dword [esp + 0x2e0], ecx
mov eax, 0x10
mov dword [esp + 0x120], eax
xor eax, eax
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
jmp 0x4a2f8a
cmp ecx, 6
jne 0x4a29e3
movzx eax, byte [edx + 0x340]
test al, al
je 0x4a292b
test ebx, ebx
jge 0x4a28f0
mov eax, ebx
xor ecx, ecx
jmp 0x4a28f6
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a28fe
xor edi, edi
jmp 0x4a2907
xor ebp, ebp
mov edi, dword [esp + 0x118]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.0049b1f0
mov eax, dword [esp + 0x10]
lea ecx, [0x512338]
mov edx, eax
xor ebx, ebx
jmp 0x4a296e
test ebx, ebx
jge 0x4a2935
mov eax, ebx
xor ecx, ecx
jmp 0x4a293b
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2943
xor edi, edi
jmp 0x4a294c
xor ebp, ebp
mov edi, dword [esp + 0x118]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.0049ae00
mov eax, dword [esp + 0x10]
lea ecx, [0x51238c]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
mov edi, ebx
xor ebx, ebx
mov dword [esp + 0x2d4], ebx
xor ebp, ebp
mov dword [esp + 0x2e4], ebp
xor esi, esi
mov dword [esp + 0x2c0], esi
xor ebx, ebx
mov dword [esp + 0x2d8], ebx
mov dword [esp + 0x100], ecx
mov dword [esp + 0x2e0], eax
mov ebx, 0x18
mov dword [esp + 0x120], ebx
mov ebx, dword [esp + 0xe0]
xor eax, eax
mov ecx, edx
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
mov edx, dword [esp + 0x30c]
jmp 0x4a2f8a
mov eax, dword [edx + 0x20]
test ebx, ebx
jge 0x4a29f0
mov ecx, ebx
xor edi, edi
jmp 0x4a29f6
mov ecx, ebx
xor ebx, ebx
mov edi, ecx
mov dword [esp + 0x120], eax
test ebp, ebp
jge 0x4a2a10
mov dword [esp + 0x2a8], eax
xor eax, eax
mov dword [esp + 0x60], eax
jmp 0x4a2a1f
xor ebp, ebp
mov ebp, dword [esp + 0x118]
mov dword [esp + 0x60], 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 + 0x60]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], esi
call fcn.0049b830
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x2d4], eax
xor edx, edx
mov dword [esp + 0x2e4], edx
xor ebx, ebx
mov dword [esp + 0x2c0], ebx
xor ebp, ebp
mov dword [esp + 0x2d8], ebp
lea esi, [0x512370]
mov dword [esp + 0x100], esi
mov dword [esp + 0x2e0], eax
xor eax, eax
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
jmp 0x4a2f8a
cmp ecx, 0xc
jg 0x4a2ca3
cmp ecx, 0xb
jne 0x4a2b9f
test ebx, ebx
jge 0x4a2ae7
mov eax, ebx
xor ecx, ecx
jmp 0x4a2aed
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2af5
xor edi, edi
jmp 0x4a2afe
xor ebp, ebp
mov edi, dword [esp + 0x118]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.0049b1f0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
mov ecx, eax
xor edi, edi
xor eax, eax
mov dword [esp + 0x2d4], eax
xor edx, edx
mov dword [esp + 0x2e4], edx
xor ebx, ebx
mov dword [esp + 0x2c0], ebx
xor ebp, ebp
mov dword [esp + 0x2d8], ebp
lea esi, [0x512338]
mov dword [esp + 0x100], esi
mov dword [esp + 0x2e0], ecx
mov eax, 0x20
mov dword [esp + 0x120], eax
xor eax, eax
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
jmp 0x4a2f8a
movzx eax, byte [edx + 0x340]
test al, al
je 0x4a2bef
test ebx, ebx
jge 0x4a2bb4
mov eax, ebx
xor ecx, ecx
jmp 0x4a2bba
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2bc2
xor edi, edi
jmp 0x4a2bcb
xor ebp, ebp
mov edi, dword [esp + 0x118]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.0049b400
mov eax, dword [esp + 0x10]
lea ecx, [0x512354]
mov edx, eax
xor ebx, ebx
jmp 0x4a2c32
test ebx, ebx
jge 0x4a2bf9
mov eax, ebx
xor ecx, ecx
jmp 0x4a2bff
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2c07
xor edi, edi
jmp 0x4a2c10
xor ebp, ebp
mov edi, dword [esp + 0x118]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.0049b700
mov eax, dword [esp + 0x10]
lea ecx, [0x51231c]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x2d4], ebp
mov dword [esp + 0x2e4], ebx
xor esi, esi
mov dword [esp + 0x2c0], esi
mov dword [esp + 0x2d8], edx
mov dword [esp + 0x100], ecx
mov dword [esp + 0x2e0], eax
mov ebp, 0x10
mov dword [esp + 0x120], ebp
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xe0]
xor eax, eax
xor ecx, ecx
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
jmp 0x4a2f8a
cmp ecx, 0xd
jne 0x4a2d6e
test ebx, ebx
jge 0x4a2cb6
mov eax, ebx
xor ecx, ecx
jmp 0x4a2cbc
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2cc4
xor edi, edi
jmp 0x4a2ccd
xor ebp, ebp
mov edi, dword [esp + 0x118]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.0049b400
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
xor ecx, ecx
xor edi, edi
xor edx, edx
mov dword [esp + 0x2d4], edx
xor ebx, ebx
mov dword [esp + 0x2e4], ebx
xor ebp, ebp
mov dword [esp + 0x2c0], ebp
mov dword [esp + 0x2d8], eax
lea esi, [0x512354]
mov dword [esp + 0x100], esi
mov dword [esp + 0x2e0], eax
mov ecx, 0x20
mov dword [esp + 0x120], ecx
xor eax, eax
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
xor ecx, ecx
jmp 0x4a2f8a
cmp ecx, 0xe
jne 0x4a2e7b
movzx eax, byte [edx + 0x340]
test al, al
je 0x4a2dc7
test ebx, ebx
jge 0x4a2d8c
mov eax, ebx
xor ecx, ecx
jmp 0x4a2d92
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2d9a
xor edi, edi
jmp 0x4a2da3
xor ebp, ebp
mov edi, dword [esp + 0x118]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.0049b400
mov eax, dword [esp + 0x10]
lea ecx, [0x512354]
mov edx, eax
xor ebx, ebx
jmp 0x4a2e0a
test ebx, ebx
jge 0x4a2dd1
mov eax, ebx
xor ecx, ecx
jmp 0x4a2dd7
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2ddf
xor edi, edi
jmp 0x4a2de8
xor ebp, ebp
mov edi, dword [esp + 0x118]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.0049b010
mov eax, dword [esp + 0x10]
lea ecx, [0x5123a8]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x2d4], ebp
xor esi, esi
mov dword [esp + 0x2e4], esi
mov dword [esp + 0x2c0], ebx
mov dword [esp + 0x2d8], edx
mov dword [esp + 0x100], ecx
mov dword [esp + 0x2e0], eax
mov ebp, 0x30
mov dword [esp + 0x120], ebp
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xe0]
xor eax, eax
xor ecx, ecx
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
jmp 0x4a2f8a
cmp ecx, 0xf
jne 0x4a2f43
test ebx, ebx
jge 0x4a2e8e
mov eax, ebx
xor ecx, ecx
jmp 0x4a2e94
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2e9c
xor edi, edi
jmp 0x4a2ea5
xor ebp, ebp
mov edi, dword [esp + 0x118]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.0049b400
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
xor ecx, ecx
xor edi, edi
xor edx, edx
mov dword [esp + 0x2d4], edx
xor ebx, ebx
mov dword [esp + 0x2e4], ebx
xor ebp, ebp
mov dword [esp + 0x2c0], ebp
mov dword [esp + 0x2d8], eax
lea esi, [0x512354]
mov dword [esp + 0x100], esi
mov dword [esp + 0x2e0], eax
mov ecx, 0x40
mov dword [esp + 0x120], ecx
xor eax, eax
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x118]
movzx esi, byte [esp + 0x31c]
xor ecx, ecx
jmp 0x4a2f8a
xor eax, eax
xor ecx, ecx
xor edi, edi
xor eax, eax
mov dword [esp + 0x2d4], eax
xor eax, eax
mov dword [esp + 0x2e4], eax
xor eax, eax
mov dword [esp + 0x2c0], eax
xor eax, eax
mov dword [esp + 0x2d8], eax
xor eax, eax
mov dword [esp + 0x100], eax
xor eax, eax
mov dword [esp + 0x2e0], eax
xor eax, eax
mov dword [esp + 0x120], eax
xor eax, eax
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4a30e2
mov dword [esp + 0x2c4], edi
mov esi, eax
mov eax, dword [esp + 0x120]
mul ebx
mov edi, dword [esp + 0x120]
sar edi, 0x1f
imul edi, ebx
add edx, edi
sar ebx, 0x1f
mov edi, dword [esp + 0x120]
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 0x4a30ab
mov dword [esp + 0x134], edi
mov dword [esp + 0xe4], ebx
mov dword [esp + 0x2dc], ecx
mov dword [esp + 0x304], eax
mov dword [esp + 0x130], esi
lea eax, [0x4d74a0]
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.00446ea0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x300], eax
lea ecx, [0x4d74a0]
mov dword [esp], ecx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x134]
mov dword [esp + 4], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
call fcn.00446ea0
mov eax, dword [esp + 0x130]
sar eax, 3
mov dword [esp + 0x11c], eax
mov ecx, dword [esp + 0x14]
xor edx, edx
xor ebx, ebx
mov ebp, dword [esp + 0x300]
jmp 0x4a3133
mov dword [esp + 0x320], 0
mov dword [esp + 0x324], 0
lea eax, [0x5121cc]
mov dword [esp + 0x328], eax
lea eax, [0x511cb4]
mov dword [esp + 0x32c], eax
add esp, 0x308
ret
mov eax, dword [esp + 0x100]
mov dword [esp + 0x320], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x324], eax
mov dword [esp + 0x328], 0
mov dword [esp + 0x32c], 0
add esp, 0x308
ret
mov esi, dword [esp + 0xf4]
inc esi
mov eax, dword [esp + 0x11c]
mov edx, esi
mov ebp, dword [esp + 0x2f0]
mov esi, dword [esp + 0x118]
cmp edx, esi
jge 0x4a3992
mov dword [esp + 0x2f0], ecx
mov dword [esp + 0x2fc], ebp
mov dword [esp + 0xf4], edx
mov dword [esp + 0xe8], ebx
nop
mov eax, dword [esp + 0x310]
mov dword [esp], eax
mov ecx, dword [esp + 0x314]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov edx, dword [esp + 0x134]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
call fcn.00465040
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 0x4a3894
mov ebx, dword [esp + 0x134]
cmp ebx, 1
jb 0x4a5889
lea ecx, [ebx - 1]
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
mov esi, dword [esp + 0x2fc]
lea edi, [esi + ecx]
cmp ebx, 1
jb 0x4a587d
mov dword [esp + 0x130], ebp
mov dword [esp + 0x2f4], edi
mov eax, ebx
mov ebx, dword [esp + 0x2f0]
mov edx, ebx
add ebx, ecx
mov ecx, esi
movzx esi, byte [esi]
xchg esi, eax
cmp al, 1
xchg esi, eax
ja 0x4a321b
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a32af
mov ebx, dword [esp + 0x11c]
mov esi, ebx
jmp 0x4a5850
mov dword [esp + 0x2d0], ebx
xchg esi, eax
cmp al, 2
xchg esi, eax
jne 0x4a3230
xor esi, esi
jmp 0x4a5811
xchg esi, eax
cmp al, 3
xchg esi, eax
jne 0x4a325a
mov esi, dword [esp + 0x11c]
mov dword [esp + 0x138], eax
xor eax, eax
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x138]
jmp 0x4a572c
xchg esi, eax
cmp al, 4
xchg esi, eax
jne 0x4a385d
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 + 0x11c]
mov dword [esp + 0x18], eax
call fcn.004a0fc0
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x2fc]
mov edx, dword [esp + 0x2f0]
mov ebp, dword [esp + 0x130]
mov edi, dword [esp + 0x2f4]
mov ebx, dword [esp + 0x30c]
mov esi, dword [ebx + 0x30]
cmp esi, 7
jg 0x4a35dd
cmp esi, 3
jg 0x4a33e9
cmp esi, 1
jne 0x4a3329
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a3306
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x2a], al
xchg esi, eax
mov dword [esp + 0x158], eax
xor eax, eax
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x158]
jmp 0x4a55ac
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x168], eax
xor eax, eax
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x168]
jmp 0x4a5417
cmp esi, 2
jne 0x4a3387
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a3364
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x29], al
xchg esi, eax
mov dword [esp + 0x188], eax
xor eax, eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x188]
jmp 0x4a52a0
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x198], eax
xor eax, eax
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x198]
jmp 0x4a510d
cmp esi, 3
jne 0x4a384a
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a33c6
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x28], al
xchg esi, eax
mov dword [esp + 0x1b8], eax
xor eax, eax
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x1b8]
jmp 0x4a4f8b
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x1c8], eax
xor eax, eax
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x1c8]
jmp 0x4a4e04
cmp esi, 5
jg 0x4a34cb
cmp esi, 4
jne 0x4a34a8
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a3431
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x27], al
xchg esi, eax
mov dword [esp + 0x1e0], eax
xor eax, eax
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x1e0]
jmp 0x4a4d62
mov esi, dword [esp + 0x304]
mov ebx, dword [esi + 4]
mov edx, dword [esi]
mov esi, dword [esi + 8]
mov edi, dword [esp + 0xe8]
cmp edi, ebx
ja 0x4a4cc5
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 0x4a3466
mov ebp, ebx
mov ebx, dword [esp + 0x2f4]
cmp edx, ebx
je 0x4a3496
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.0045ecb0
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x2fc]
mov edi, dword [esp + 0xe8]
mov edx, dword [esp + 0x304]
mov ebp, dword [edx + 0xc]
lea ebx, [edi + ebp]
jmp 0x4a4cb9
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x1e8], eax
xor eax, eax
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x1e8]
jmp 0x4a4c6b
cmp esi, 6
jne 0x4a35ba
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a355f
mov esi, dword [esp + 0x2dc]
mov edx, dword [esi + 4]
mov dword [esp + 0xf0], edx
mov esi, dword [esi]
mov dword [esp + 0x2cc], esi
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x2b], al
xchg esi, eax
movzx edx, byte [ebx + 0x344]
mov byte [esp + 0x2c], dl
movzx edx, byte [ebx + 0x346]
mov byte [esp + 0x2d], dl
mov dword [esp + 0x208], eax
xor eax, eax
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x108], eax
mov dword [esp + 0x200], ecx
xor ecx, ecx
mov dword [esp + 0xfc], ecx
mov eax, dword [esp + 0x208]
mov ecx, dword [esp + 0x200]
jmp 0x4a4a5b
mov esi, dword [esp + 0x2c4]
mov edx, dword [esi + 4]
mov dword [esp + 0xec], edx
mov esi, dword [esi]
mov dword [esp + 0x2c8], esi
mov dword [esp + 0x218], eax
xor eax, eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x104], eax
mov dword [esp + 0x210], ecx
xor ecx, ecx
mov dword [esp + 0xf8], ecx
mov eax, dword [esp + 0x218]
mov ecx, dword [esp + 0x210]
jmp 0x4a48f8
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x228], eax
xor eax, eax
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x228]
jmp 0x4a4714
cmp esi, 0xb
jg 0x4a36e2
cmp esi, 9
jg 0x4a3636
cmp esi, 8
jne 0x4a3613
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x238], eax
xor eax, eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x238]
jmp 0x4a4554
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x248], eax
xor eax, eax
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x248]
jmp 0x4a4398
cmp esi, 0xa
jne 0x4a366b
mov esi, dword [esp + 0x2d4]
cmp dword [esi + 0x24], 0x100
je 0x4a4268
mov dword [esp + 0x250], eax
xor eax, eax
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x250]
jmp 0x4a4308
mov esi, dword [esp + 0x2dc]
mov ebx, dword [esi + 4]
mov edx, dword [esi]
mov esi, dword [esi + 8]
mov edi, dword [esp + 0xe8]
cmp edi, ebx
ja 0x4a425f
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 0x4a36a0
mov ebp, ebx
mov ebx, dword [esp + 0x2f4]
cmp edx, ebx
je 0x4a36d0
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.0045ecb0
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x2fc]
mov edi, dword [esp + 0xe8]
mov edx, dword [esp + 0x2dc]
mov ebp, dword [edx + 0xc]
lea ebx, [edi + ebp]
jmp 0x4a311b
cmp esi, 0xd
jg 0x4a377e
cmp esi, 0xc
jne 0x4a375b
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a3738
movzx esi, byte [ebx + 0x341]
shl esi, 8
movzx ebx, byte [ebx + 0x342]
or ebx, esi
mov word [esp + 0x46], bx
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x268], eax
xor eax, eax
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x268]
jmp 0x4a41df
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x270], eax
xor eax, eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x270]
jmp 0x4a40fe
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x278], eax
xor eax, eax
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x278]
jmp 0x4a3fd7
cmp esi, 0xe
jne 0x4a3822
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a37ff
movzx esi, byte [ebx + 0x341]
shl esi, 8
movzx edx, byte [ebx + 0x342]
or edx, esi
mov word [esp + 0x48], dx
movzx esi, byte [ebx + 0x343]
shl esi, 8
movzx edx, byte [ebx + 0x344]
or edx, esi
mov word [esp + 0x4a], dx
movzx esi, byte [ebx + 0x345]
shl esi, 8
movzx ebx, byte [ebx + 0x346]
or ebx, esi
mov word [esp + 0x4c], bx
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x290], eax
xor eax, eax
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x290]
jmp 0x4a3dcc
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x298], eax
xor eax, eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x298]
jmp 0x4a3c48
cmp esi, 0xf
jne 0x4a384a
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x2a0], eax
xor eax, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x2a0]
jmp 0x4a3a74
mov edx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0xe8]
jmp 0x4a311b
mov dword [esp + 0x320], 0
mov dword [esp + 0x324], 0
lea eax, [0x5121b8]
mov dword [esp + 0x328], eax
lea eax, [0x511c74]
mov dword [esp + 0x32c], eax
add esp, 0x308
ret
mov dword [esp + 0x2fc], ebx
mov dword [esp + 0x2ec], ebp
mov eax, dword [0x5b492c]
cmp dword [0x5b4928], ecx
je 0x4a38b4
xor eax, eax
jmp 0x4a38f3
mov dword [esp + 0x2e8], edx
mov dword [esp + 0x2f8], ecx
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00403370
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2e8]
mov ebx, dword [esp + 0x2fc]
mov ebp, dword [esp + 0x2ec]
test al, al
jne 0x4a3930
mov eax, dword [0x5b494c]
cmp dword [0x5b4948], ecx
je 0x4a3909
xor eax, eax
jmp 0x4a392c
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00403370
movzx eax, byte [esp + 0xc]
mov ebx, dword [esp + 0x2fc]
mov ebp, dword [esp + 0x2ec]
test al, al
je 0x4a3967
mov dword [esp + 0x320], 0
mov dword [esp + 0x324], 0
lea eax, [0x5121b8]
mov dword [esp + 0x328], eax
lea eax, [0x511c5c]
mov dword [esp + 0x32c], eax
add esp, 0x308
ret
mov dword [esp + 0x320], 0
mov dword [esp + 0x324], 0
mov dword [esp + 0x328], ebx
mov dword [esp + 0x32c], ebp
add esp, 0x308
ret
mov eax, dword [esp + 0x100]
mov dword [esp + 0x320], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x324], eax
mov dword [esp + 0x328], 0
mov dword [esp + 0x32c], 0
add esp, 0x308
ret
lea eax, [edi + edx*8 + 7]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x2d8]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov ebp, dword [esp + 0xf4]
mov dword [esp + 8], ebp
movzx esi, word [esp + 0x4e]
mov word [esp + 0xc], si
movzx esi, word [esp + 0x54]
mov word [esp + 0xe], si
movzx esi, word [esp + 0x5a]
mov word [esp + 0x10], si
shl ebx, 8
or eax, ebx
mov word [esp + 0x12], ax
call fcn.0049b320
mov eax, dword [esp + 0x90]
inc eax
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x2d8]
mov ebx, dword [esp + 0xf4]
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x2fc]
mov edx, dword [esp + 0x2f0]
mov ebx, dword [esp + 0x30c]
mov esi, dword [esp + 0xe0]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x134]
mov ebx, dword [esp + 0x90]
cmp ebx, esi
jge 0x4a3b40
shl ebx, 3
cmp ebx, ebp
jae 0x4a3b92
mov dword [esp + 0x12c], ebx
mov edx, dword [esp + 0x90]
lea esi, [edi + edx*8]
movzx esi, byte [esi]
inc ebx
cmp ebx, ebp
jae 0x4a3b89
shl esi, 8
lea ebx, [edi + edx*8 + 1]
movzx ebx, byte [ebx]
or ebx, esi
mov word [esp + 0x4e], bx
mov esi, dword [esp + 0x12c]
lea ebx, [esi + 2]
cmp ebx, ebp
jae 0x4a3b80
lea ebx, [edi + edx*8 + 2]
movzx ebx, byte [ebx]
add esi, 3
cmp esi, ebp
jae 0x4a3b77
shl ebx, 8
lea esi, [edi + edx*8 + 3]
movzx esi, byte [esi]
or esi, ebx
mov word [esp + 0x54], si
mov ebx, dword [esp + 0x12c]
lea esi, [ebx + 4]
cmp esi, ebp
jae 0x4a3b6e
lea esi, [edi + edx*8 + 4]
movzx esi, byte [esi]
add ebx, 5
cmp ebx, ebp
jae 0x4a3b65
shl esi, 8
lea ebx, [edi + edx*8 + 5]
movzx ebx, byte [ebx]
or ebx, esi
mov word [esp + 0x5a], bx
mov esi, dword [esp + 0x12c]
lea ebx, [esi + 6]
cmp ebx, ebp
jae 0x4a3b5c
lea ebx, [edi + edx*8 + 6]
movzx ebx, byte [ebx]
add esi, 7
cmp esi, ebp
jb 0x4a39cb
jmp 0x4a3b53
mov edx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0xe8]
jmp 0x4a311b
mov eax, esi
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, esi
mov ecx, ebp
call fcn.0045e460
mov eax, esi
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
lea eax, [edi + esi*2 + 5]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x2c0]
mov dword [esp], ecx
mov edx, dword [esp + 0x94]
mov dword [esp + 4], edx
mov ebp, dword [esp + 0xf4]
mov dword [esp + 8], ebp
movzx esi, word [esp + 0x50]
mov word [esp + 0xc], si
movzx esi, word [esp + 0x56]
mov word [esp + 0xe], si
shl ebx, 8
or eax, ebx
mov word [esp + 0x10], ax
mov word [esp + 0x12], 0xffff
call fcn.0049af30
mov eax, dword [esp + 0x94]
inc eax
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x2c0]
mov ebx, dword [esp + 0x2f4]
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0xf4]
mov ecx, dword [esp + 0x2fc]
mov edx, dword [esp + 0x2f0]
mov ebx, dword [esp + 0x30c]
mov esi, dword [esp + 0xe0]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x134]
mov ebx, dword [esp + 0x94]
cmp ebx, esi
jge 0x4a3ce8
lea edx, [ebx + ebx*2]
mov dword [esp + 0x12c], edx
shl edx, 1
cmp edx, ebp
jae 0x4a3d28
mov dword [esp + 0x128], edx
mov esi, dword [esp + 0x12c]
lea ebx, [edi + esi*2]
movzx ebx, byte [ebx]
inc edx
cmp edx, ebp
jae 0x4a3d1f
shl ebx, 8
lea edx, [edi + esi*2 + 1]
movzx edx, byte [edx]
or edx, ebx
mov word [esp + 0x50], dx
mov ebx, dword [esp + 0x128]
lea edx, [ebx + 2]
cmp edx, ebp
jae 0x4a3d16
lea edx, [edi + esi*2 + 2]
movzx edx, byte [edx]
add ebx, 3
cmp ebx, ebp
jae 0x4a3d0d
shl edx, 8
lea ebx, [edi + esi*2 + 3]
movzx ebx, byte [ebx]
or ebx, edx
mov word [esp + 0x56], bx
mov edx, dword [esp + 0x128]
lea ebx, [edx + 4]
cmp ebx, ebp
jae 0x4a3d04
lea ebx, [edi + esi*2 + 4]
movzx ebx, byte [ebx]
add edx, 5
cmp edx, ebp
jb 0x4a3b9b
jmp 0x4a3cfb
mov edx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0xe8]
jmp 0x4a311b
mov eax, edx
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, edx
mov ecx, ebp
call fcn.0045e460
mov eax, edx
mov ecx, ebp
call fcn.0045e460
mov eax, edx
mov ecx, ebp
call fcn.0045e460
mov ecx, dword [esp + 0x2d8]
mov dword [esp], ecx
mov ebp, dword [esp + 0x98]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0xf4]
mov dword [esp + 8], esi
mov word [esp + 0xc], dx
mov word [esp + 0xe], ax
mov word [esp + 0x10], bx
movzx eax, word [esp + 0x5c]
mov word [esp + 0x12], ax
call fcn.0049b320
mov eax, dword [esp + 0x98]
inc eax
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x2d8]
movzx ebx, word [esp + 0x48]
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0x2f4]
mov edi, dword [esp + 0xf4]
mov ecx, dword [esp + 0x2fc]
movzx edx, word [esp + 0x4a]
movzx ebx, word [esp + 0x4c]
mov esi, dword [esp + 0xe0]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x134]
mov ebx, dword [esp + 0x98]
cmp ebx, esi
jge 0x4a3ef6
lea esi, [ebx + ebx*2]
mov dword [esp + 0x12c], esi
shl esi, 1
cmp esi, ebp
jae 0x4a3f2f
mov dword [esp + 0x128], esi
mov ebx, dword [esp + 0x12c]
lea edx, [edi + ebx*2]
movzx edx, byte [edx]
inc esi
cmp esi, ebp
jae 0x4a3f26
shl edx, 8
lea esi, [edi + ebx*2 + 1]
movzx esi, byte [esi]
or esi, edx
mov word [esp + 0x52], si
mov edx, dword [esp + 0x128]
lea esi, [edx + 2]
cmp esi, ebp
jae 0x4a3f1d
lea esi, [edi + ebx*2 + 2]
movzx esi, byte [esi]
add edx, 3
cmp edx, ebp
jae 0x4a3f14
shl esi, 8
lea edx, [edi + ebx*2 + 3]
movzx edx, byte [edx]
or edx, esi
mov word [esp + 0x58], dx
mov esi, dword [esp + 0x128]
lea edx, [esi + 4]
cmp edx, ebp
jae 0x4a3f0b
lea edx, [edi + ebx*2 + 4]
movzx edx, byte [edx]
add esi, 5
cmp esi, ebp
jae 0x4a3f02
shl edx, 8
lea ebx, [edi + ebx*2 + 5]
movzx ebx, byte [ebx]
or ebx, edx
movzx edx, word [esp + 0x52]
movzx esi, word [esp + 0x48]
cmp dx, si
jne 0x4a3ecd
movzx eax, word [esp + 0x58]
movzx ecx, word [esp + 0x4a]
cmp ax, cx
jne 0x4a3ec6
movzx ecx, word [esp + 0x4c]
cmp bx, cx
jne 0x4a3ed7
mov word [esp + 0x280], ax
xor eax, eax
mov word [esp + 0x5c], ax
movzx eax, word [esp + 0x280]
jmp 0x4a3d31
movzx ecx, word [esp + 0x4c]
jmp 0x4a3ed7
movzx eax, word [esp + 0x58]
movzx ecx, word [esp + 0x4c]
mov word [esp + 0x288], ax
mov eax, 0xffffffff
mov word [esp + 0x5c], ax
movzx eax, word [esp + 0x288]
jmp 0x4a3d31
mov edx, dword [esp + 0x2f0]
jmp 0x4a3ce8
mov eax, esi
mov ecx, ebp
call fcn.0045e460
mov eax, edx
mov ecx, ebp
call fcn.0045e460
mov eax, edx
mov ecx, ebp
call fcn.0045e460
mov eax, esi
mov ecx, ebp
call fcn.0045e460
mov eax, esi
mov ecx, ebp
call fcn.0045e460
mov eax, esi
mov ecx, ebp
call fcn.0045e460
lea eax, [edi + edx*4 + 3]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x2d8]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov ebp, dword [esp + 0xf4]
mov dword [esp + 8], ebp
movzx esi, word [esp + 0x44]
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.0049b320
mov eax, dword [esp + 0x9c]
inc eax
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x2d8]
mov ebx, dword [esp + 0x2f4]
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0xf4]
mov ecx, dword [esp + 0x2fc]
mov edx, dword [esp + 0x2f0]
mov ebx, dword [esp + 0x30c]
mov esi, dword [esp + 0xe0]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x134]
mov ebx, dword [esp + 0x9c]
cmp ebx, esi
jge 0x4a4035
shl ebx, 2
cmp ebx, ebp
jae 0x4a4063
mov dword [esp + 0x12c], ebx
mov edx, dword [esp + 0x9c]
lea esi, [edi + edx*4]
movzx esi, byte [esi]
inc ebx
cmp ebx, ebp
jae 0x4a405a
shl esi, 8
lea ebx, [edi + edx*4 + 1]
movzx ebx, byte [ebx]
or ebx, esi
mov word [esp + 0x44], bx
mov esi, dword [esp + 0x12c]
lea ebx, [esi + 2]
cmp ebx, ebp
jae 0x4a4051
lea ebx, [edi + edx*4 + 2]
movzx ebx, byte [ebx]
add esi, 3
cmp esi, ebp
jb 0x4a3f38
jmp 0x4a4048
mov edx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0xe8]
jmp 0x4a311b
mov eax, esi
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
lea eax, [edi + edx*2 + 1]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x2e4]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xf4]
mov dword [esp + 8], ebx
shl esi, 8
or eax, esi
mov word [esp + 0xc], ax
call fcn.0049b660
mov eax, dword [esp + 0xa0]
inc eax
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x2e4]
mov ebx, dword [esp + 0x130]
mov ebp, dword [esp + 0xf4]
mov esi, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x2fc]
mov edx, dword [esp + 0x2f0]
mov ebx, dword [esp + 0x30c]
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0xe0]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x134]
mov ebx, dword [esp + 0xa0]
cmp ebx, esi
jge 0x4a4127
shl ebx, 1
cmp ebx, ebp
jae 0x4a4143
mov edx, dword [esp + 0xa0]
lea esi, [edi + edx*2]
movzx esi, byte [esi]
inc ebx
cmp ebx, ebp
jb 0x4a406c
jmp 0x4a413a
mov edx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0xe8]
jmp 0x4a311b
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, dword [esp + 0x2d8]
mov dword [esp], eax
mov dword [esp + 4], esi
mov ecx, dword [esp + 0xf4]
mov dword [esp + 8], ecx
mov word [esp + 0xc], dx
mov word [esp + 0xe], dx
mov word [esp + 0x10], dx
movzx edx, word [esp + 0x5e]
mov word [esp + 0x12], dx
call fcn.0049b320
mov eax, dword [esp + 0xa4]
inc eax
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x2d8]
movzx ebx, word [esp + 0x46]
mov ebp, dword [esp + 0xf4]
mov esi, dword [esp + 0x2f4]
mov edi, dword [esp + 0x130]
mov ecx, dword [esp + 0x2fc]
mov edx, dword [esp + 0x2f0]
mov ebp, edi
mov esi, dword [esp + 0xe0]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x134]
mov edx, dword [esp + 0xa4]
cmp edx, esi
jge 0x4a4241
shl edx, 1
cmp edx, ebp
jae 0x4a4256
mov esi, dword [esp + 0xa4]
lea ebx, [edi + esi*2]
movzx ebx, byte [ebx]
inc edx
cmp edx, ebp
jae 0x4a424d
shl ebx, 8
lea edx, [edi + esi*2 + 1]
movzx edx, byte [edx]
or edx, ebx
movzx ebx, word [esp + 0x46]
cmp dx, bx
jne 0x4a422b
mov dword [esp + 0x258], eax
xor eax, eax
mov word [esp + 0x5e], ax
jmp 0x4a414c
mov dword [esp + 0x260], eax
mov eax, 0xffffffff
mov word [esp + 0x5e], ax
jmp 0x4a414c
mov edx, dword [esp + 0x2f0]
jmp 0x4a4127
mov eax, edx
mov ecx, ebp
call fcn.0045e460
mov eax, edx
mov ecx, ebp
call fcn.0045e460
mov eax, edi
mov ecx, ebx
call fcn.0045e4c0
mov ebx, dword [esi + 4]
mov edx, dword [esi]
mov esi, dword [esi + 8]
mov edi, dword [esp + 0xe8]
cmp edi, ebx
ja 0x4a42db
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 0x4a4292
mov ebp, ebx
mov ebx, dword [esp + 0x2f4]
cmp edx, ebx
je 0x4a42c2
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.0045ecb0
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x2fc]
mov edi, dword [esp + 0xe8]
mov ebp, dword [esp + 0x2d4]
mov esi, dword [ebp + 0xc]
lea ebx, [edi + esi]
mov edx, dword [esp + 0x2dc]
jmp 0x4a311b
mov eax, edi
mov ecx, ebx
call fcn.0045e4c0
inc ebx
mov ebp, dword [esp + 0xe0]
mov edi, dword [esp + 0x2f4]
mov ebp, dword [esp + 0x130]
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xa8]
mov edi, dword [esp + 0xe0]
cmp ebx, edi
jge 0x4a434d
mov edi, dword [esi + 0x28]
mov esi, dword [esi + 0x24]
cmp ebx, ebp
jae 0x4a4369
mov ebp, dword [esp + 0x2f4]
movzx ebp, byte [ebx + ebp]
cmp esi, ebp
jg 0x4a4344
inc ebp
cmp edi, ebp
jb 0x4a4360
mov esi, dword [esp + 0x2d4]
mov dword [esi + 0x24], ebp
jmp 0x4a42e4
mov esi, dword [esp + 0x2d4]
jmp 0x4a42e4
mov ebx, dword [esp + 0x30c]
mov edi, dword [esp + 0x2f4]
jmp 0x4a4268
mov ecx, ebp
mov edx, edi
call fcn.0045e4a0
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
lea ebx, [esi + 2]
mov esi, dword [esp + 0xe0]
mov edi, dword [esp + 0x2d4]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xac]
cmp ebx, esi
jge 0x4a43e3
shr ebx, 0x1f
mov esi, dword [esp + 0xac]
add ebx, esi
sar ebx, 1
cmp ebx, ebp
jae 0x4a4525
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x240], eax
xor eax, eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x240]
jmp 0x4a441e
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0xac]
jmp 0x4a4372
mov edx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0xe8]
jmp 0x4a311b
mov ebx, dword [esp + 0x6c]
inc ebx
movzx ebp, byte [esp + 0x34]
shl ebp, 4
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0x6c], ebx
mov ebx, ebp
mov ebp, dword [esp + 0x130]
mov edi, dword [esp + 0x6c]
cmp edi, 2
jge 0x4a4372
lea ebp, [edi + esi]
mov esi, dword [esp + 0xe0]
cmp esi, ebp
jle 0x4a43d3
mov byte [esp + 0x34], bl
shr bl, 4
mov byte [esp + 0x2f], bl
mov esi, dword [esp + 0x2d4]
mov edi, dword [esi + 0x28]
movzx ebx, bl
cmp dword [esi + 0x24], ebx
jg 0x4a4462
inc ebx
cmp edi, ebx
jb 0x4a451c
mov dword [esi + 0x24], ebx
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
mov dword [esp + 0x12c], edi
mov edi, dword [esi + 0x18]
mov esi, dword [esi + 0x1c]
cmp ebx, ebp
jg 0x4a4507
cmp edi, ebp
jle 0x4a44fb
mov dword [esp + 0x128], ebx
mov edi, dword [esp + 0xf4]
mov ebx, dword [esp + 0x12c]
cmp edi, ebx
jl 0x4a43f6
cmp edi, esi
jge 0x4a43f6
mov dword [esp + 0x12c], ebp
nop
mov esi, dword [esp + 0x2d4]
mov ebp, dword [esi + 4]
mov dword [esp + 0x124], ebp
mov ebp, dword [esi]
sub edi, ebx
imul edi, dword [esi + 0xc]
mov ebx, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
sub ebx, esi
add ebx, edi
mov esi, dword [esp + 0x124]
cmp esi, ebx
jbe 0x4a4513
movzx esi, byte [esp + 0x2f]
xchg esi, eax
mov byte [ebp + ebx], al
xchg esi, eax
mov edi, dword [esp + 0xf4]
jmp 0x4a43f6
mov edi, dword [esp + 0xf4]
jmp 0x4a43f6
mov edi, dword [esp + 0xf4]
jmp 0x4a43f6
mov eax, ebx
mov ecx, esi
call fcn.0045e460
mov ecx, ebx
mov edx, edi
call fcn.0045e4a0
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
lea ebx, [esi + 4]
mov esi, dword [esp + 0xe0]
mov edi, dword [esp + 0x2d4]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0xb0], ebx
mov ebx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xb0]
cmp ebx, esi
jge 0x4a45a3
sar ebx, 0x1f
shr ebx, 0x1e
mov esi, dword [esp + 0xb0]
add ebx, esi
sar ebx, 2
cmp ebx, ebp
jae 0x4a46e5
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x230], eax
xor eax, eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x230]
jmp 0x4a45de
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0xb0]
jmp 0x4a452e
mov edx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0xe8]
jmp 0x4a311b
mov ebx, dword [esp + 0x70]
inc ebx
movzx ebp, byte [esp + 0x35]
shl ebp, 2
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0x70], ebx
mov ebx, ebp
mov ebp, dword [esp + 0x130]
mov edi, dword [esp + 0x70]
cmp edi, 4
jge 0x4a452e
lea ebp, [edi + esi]
mov esi, dword [esp + 0xe0]
cmp esi, ebp
jle 0x4a4593
mov byte [esp + 0x35], bl
shr bl, 6
mov byte [esp + 0x30], bl
mov esi, dword [esp + 0x2d4]
mov edi, dword [esi + 0x28]
movzx ebx, bl
cmp dword [esi + 0x24], ebx
jg 0x4a4622
inc ebx
cmp edi, ebx
jb 0x4a46dc
mov dword [esi + 0x24], ebx
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
mov dword [esp + 0x12c], edi
mov edi, dword [esi + 0x18]
mov esi, dword [esi + 0x1c]
cmp ebx, ebp
jg 0x4a46c7
cmp edi, ebp
jle 0x4a46bb
mov dword [esp + 0x128], ebx
mov edi, dword [esp + 0xf4]
mov ebx, dword [esp + 0x12c]
cmp edi, ebx
jl 0x4a45b6
cmp edi, esi
jge 0x4a45b6
mov dword [esp + 0x12c], ebp
nop
mov esi, dword [esp + 0x2d4]
mov ebp, dword [esi + 4]
mov dword [esp + 0x124], ebp
mov ebp, dword [esi]
sub edi, ebx
imul edi, dword [esi + 0xc]
mov ebx, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
sub ebx, esi
add ebx, edi
mov esi, dword [esp + 0x124]
cmp esi, ebx
jbe 0x4a46d3
movzx esi, byte [esp + 0x30]
xchg esi, eax
mov byte [ebp + ebx], al
xchg esi, eax
mov edi, dword [esp + 0xf4]
jmp 0x4a45b6
mov edi, dword [esp + 0xf4]
jmp 0x4a45b6
mov edi, dword [esp + 0xf4]
jmp 0x4a45b6
mov eax, ebx
mov ecx, esi
call fcn.0045e460
mov ecx, ebx
mov edx, edi
call fcn.0045e4a0
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
lea ebx, [esi + 8]
mov esi, dword [esp + 0xe0]
mov edi, dword [esp + 0x2d4]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xb4]
cmp ebx, esi
jge 0x4a4763
sar ebx, 0x1f
shr ebx, 0x1d
mov esi, dword [esp + 0xb4]
add ebx, esi
sar ebx, 3
cmp ebx, ebp
jae 0x4a48a4
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x220], eax
xor eax, eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x220]
jmp 0x4a479d
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0xb4]
jmp 0x4a46ee
mov edx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0xe8]
jmp 0x4a311b
mov ebx, dword [esp + 0x74]
inc ebx
movzx ebp, byte [esp + 0x36]
shl ebp, 1
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0x74], ebx
mov ebx, ebp
mov ebp, dword [esp + 0x130]
mov edi, dword [esp + 0x74]
cmp edi, 8
jge 0x4a46ee
lea ebp, [edi + esi]
mov esi, dword [esp + 0xe0]
cmp esi, ebp
jle 0x4a4753
mov byte [esp + 0x36], bl
shr bl, 7
mov byte [esp + 0x31], bl
mov esi, dword [esp + 0x2d4]
mov edi, dword [esi + 0x28]
movzx ebx, bl
cmp dword [esi + 0x24], ebx
jg 0x4a47e1
inc ebx
cmp edi, ebx
jb 0x4a489b
mov dword [esi + 0x24], ebx
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
mov dword [esp + 0x12c], edi
mov edi, dword [esi + 0x18]
mov esi, dword [esi + 0x1c]
cmp ebx, ebp
jg 0x4a4886
cmp edi, ebp
jle 0x4a487a
mov dword [esp + 0x128], ebx
mov edi, dword [esp + 0xf4]
mov ebx, dword [esp + 0x12c]
cmp edi, ebx
jl 0x4a4776
cmp edi, esi
jge 0x4a4776
mov dword [esp + 0x12c], ebp
nop
mov esi, dword [esp + 0x2d4]
mov ebp, dword [esi + 4]
mov dword [esp + 0x124], ebp
mov ebp, dword [esi]
sub edi, ebx
imul edi, dword [esi + 0xc]
mov ebx, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
sub ebx, esi
add ebx, edi
mov esi, dword [esp + 0x124]
cmp esi, ebx
jbe 0x4a4892
movzx esi, byte [esp + 0x31]
xchg esi, eax
mov byte [ebp + ebx], al
xchg esi, eax
mov edi, dword [esp + 0xf4]
jmp 0x4a4776
mov edi, dword [esp + 0xf4]
jmp 0x4a4776
mov edi, dword [esp + 0xf4]
jmp 0x4a4776
mov eax, ebx
mov ecx, esi
call fcn.0045e460
mov ecx, ebx
mov edx, edi
call fcn.0045e4a0
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov byte [edi + ebp + 3], 0xff
mov edx, dword [esp + 0xb8]
inc edx
add edi, 4
add ebx, 3
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0x2c8]
mov dword [esp + 0xb8], edx
mov dword [esp + 0x104], edi
mov dword [esp + 0xf8], ebx
mov edx, dword [esp + 0xec]
mov ebx, dword [esp + 0x30c]
mov edi, dword [esp + 0x2f4]
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0xe0]
cmp ebx, esi
jge 0x4a49a9
mov esi, dword [esp + 0xf8]
cmp esi, ebp
jae 0x4a49fe
movzx ebx, byte [esi + edi]
mov edi, dword [esp + 0x104]
cmp edi, edx
jae 0x4a49f5
mov edx, dword [esp + 0x2c8]
mov byte [edx + edi], bl
lea ebx, [esi + 1]
cmp ebx, ebp
jae 0x4a49ec
lea ebx, [edi + 1]
mov ebp, dword [esp + 0x2f4]
movzx ebp, byte [esi + ebp + 1]
mov esi, dword [esp + 0xec]
cmp esi, ebx
jbe 0x4a49e3
xchg ebp, eax
mov byte [edi + edx + 1], al
xchg ebp, eax
mov ebx, dword [esp + 0xf8]
lea ebp, [ebx + 2]
mov edx, dword [esp + 0x130]
cmp ebp, edx
jae 0x4a49da
lea ebp, [edi + 2]
mov edx, dword [esp + 0x2f4]
movzx edx, byte [ebx + edx + 2]
cmp esi, ebp
jbe 0x4a49d1
mov ebp, dword [esp + 0x2c8]
mov byte [edi + ebp + 2], dl
lea edx, [edi + 3]
cmp esi, edx
ja 0x4a48ad
jmp 0x4a49c8
mov edx, dword [esp + 0x2c4]
mov ebx, dword [edx + 0xc]
mov ebp, dword [esp + 0xe8]
add ebx, ebp
mov edx, dword [esp + 0x2dc]
jmp 0x4a311b
mov eax, edx
mov ecx, esi
call fcn.0045e460
mov eax, ebp
mov ecx, esi
call fcn.0045e460
mov eax, ebp
mov ecx, edx
call fcn.0045e460
mov eax, ebx
mov ecx, esi
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, edi
mov ecx, edx
call fcn.0045e460
mov eax, esi
mov ecx, ebp
call fcn.0045e460
movzx esi, byte [esp + 0x42]
xchg esi, eax
mov byte [ebp + ebx + 3], al
xchg esi, eax
mov esi, dword [esp + 0xbc]
inc esi
add ebp, 4
mov edi, dword [esp + 0xfc]
add edi, 3
movzx edx, byte [esp + 0x2d]
mov ebx, dword [esp + 0x30c]
mov dword [esp + 0xbc], esi
mov dword [esp + 0x108], ebp
mov dword [esp + 0xfc], edi
mov ebp, dword [esp + 0x130]
movzx esi, byte [esp + 0x2b]
mov edi, dword [esp + 0x2f4]
mov ebx, dword [esp + 0xbc]
mov edx, dword [esp + 0xe0]
cmp ebx, edx
jge 0x4a4b66
mov edx, dword [esp + 0xfc]
cmp edx, ebp
jae 0x4a4bc4
movzx ebx, byte [edx + edi]
mov byte [esp + 0x2e], bl
lea ebx, [edx + 1]
cmp ebx, ebp
jae 0x4a4bbb
movzx ebx, byte [edx + edi + 1]
mov byte [esp + 0x32], bl
lea ebx, [edx + 2]
cmp ebx, ebp
jae 0x4a4bb2
movzx ebx, byte [edx + edi + 2]
movzx edi, byte [esp + 0x2e]
xchg edi, eax
xchg esi, ebx
cmp al, bl
xchg esi, ebx
xchg edi, eax
jne 0x4a4af7
movzx esi, byte [esp + 0x32]
movzx ebp, byte [esp + 0x2c]
xchg esi, eax
xchg ebp, ebx
cmp al, bl
xchg ebp, ebx
xchg esi, eax
jne 0x4a4af0
movzx ebp, byte [esp + 0x2d]
xchg ebp, eax
cmp bl, al
xchg ebp, eax
jne 0x4a4b01
mov dword [esp + 0x1f0], eax
xor eax, eax
mov byte [esp + 0x42], al
mov eax, dword [esp + 0x1f0]
jmp 0x4a4b18
movzx ebp, byte [esp + 0x2d]
jmp 0x4a4b01
movzx ebp, byte [esp + 0x2d]
movzx esi, byte [esp + 0x32]
mov dword [esp + 0x1f8], eax
mov eax, 0xffffffff
mov byte [esp + 0x42], al
mov eax, dword [esp + 0x1f8]
mov ebp, dword [esp + 0x108]
mov edx, dword [esp + 0xf0]
cmp ebp, edx
jae 0x4a4ba9
mov byte [esp + 0x37], bl
mov ebx, dword [esp + 0x2cc]
xchg edi, eax
mov byte [ebx + ebp], al
xchg edi, eax
lea edi, [ebp + 1]
cmp edx, edi
jbe 0x4a4ba0
xchg esi, eax
mov byte [ebp + ebx + 1], al
xchg esi, eax
lea esi, [ebp + 2]
cmp edx, esi
jbe 0x4a4b97
movzx esi, byte [esp + 0x37]
xchg esi, eax
mov byte [ebp + ebx + 2], al
xchg esi, eax
lea esi, [ebp + 3]
cmp edx, esi
ja 0x4a4a07
jmp 0x4a4b8e
mov ebp, dword [esp + 0x2dc]
mov edi, dword [ebp + 0xc]
mov ebp, dword [esp + 0xe8]
add ebp, edi
mov edx, dword [esp + 0x2c4]
mov esi, dword [esp + 0xe0]
mov ebx, ebp
jmp 0x4a49bc
mov eax, esi
mov ecx, edx
call fcn.0045e460
mov eax, esi
mov ecx, edx
call fcn.0045e460
mov eax, edi
mov ecx, edx
call fcn.0045e460
mov eax, ebp
mov ecx, edx
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, edx
mov ecx, ebp
call fcn.0045e460
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 + 0xf4]
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.0049b140
mov eax, dword [esp + 0xc0]
inc eax
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0x130]
mov ebp, dword [esp + 0xf4]
mov esi, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x2fc]
mov edx, dword [esp + 0x2f0]
mov ebx, dword [esp + 0x30c]
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0xe0]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x134]
mov ebx, dword [esp + 0xc0]
cmp ebx, esi
jge 0x4a4c94
shl ebx, 1
cmp ebx, ebp
jae 0x4a4cb0
mov edx, dword [esp + 0xc0]
lea esi, [edi + edx*2]
movzx esi, byte [esi]
inc ebx
cmp ebx, ebp
jb 0x4a4bcd
jmp 0x4a4ca7
mov edx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0xe8]
jmp 0x4a311b
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov edx, dword [esp + 0x2dc]
jmp 0x4a311b
mov eax, edi
mov ecx, ebx
call fcn.0045e4c0
mov ecx, dword [esp + 0x2dc]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov edx, dword [esp + 0xf4]
mov dword [esp + 8], edx
mov byte [esp + 0xc], al
mov byte [esp + 0xd], al
mov byte [esp + 0xe], al
movzx eax, byte [esp + 0x3e]
mov byte [esp + 0xf], al
call fcn.0049b140
mov eax, dword [esp + 0xc4]
inc eax
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x2dc]
movzx ebx, byte [esp + 0x27]
mov ebp, dword [esp + 0xf4]
mov esi, dword [esp + 0x2f4]
mov edi, dword [esp + 0x130]
mov ecx, dword [esp + 0x2fc]
mov edx, dword [esp + 0x2f0]
mov ebx, dword [esp + 0x30c]
mov ebp, edi
movzx esi, byte [esp + 0x27]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x134]
mov ebx, dword [esp + 0xc4]
mov edx, dword [esp + 0xe0]
cmp ebx, edx
jge 0x4a4dbb
cmp ebx, ebp
jae 0x4a4dce
movzx eax, byte [ebx + edi]
xchg esi, ebx
cmp al, bl
xchg esi, ebx
jne 0x4a4d9e
mov byte [esp + 0x1d0], al
xor eax, eax
mov byte [esp + 0x3e], al
movzx eax, byte [esp + 0x1d0]
jmp 0x4a4cce
mov byte [esp + 0x1d8], al
mov eax, 0xffffffff
mov byte [esp + 0x3e], al
movzx eax, byte [esp + 0x1d8]
jmp 0x4a4cce
mov edx, dword [esp + 0x304]
mov ebx, dword [esp + 0xe8]
jmp 0x4a4cb9
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
add edx, 2
mov ebx, dword [esp + 0x304]
mov edi, dword [esp + 0xf4]
mov ebx, dword [esp + 0x30c]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0x2f0]
mov ebx, dword [esp + 0xc8]
cmp ebx, esi
jge 0x4a4e48
shr ebx, 0x1f
mov edx, dword [esp + 0xc8]
add ebx, edx
sar ebx, 1
cmp ebx, ebp
jae 0x4a4f55
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x1c0], eax
xor eax, eax
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x1c0]
jmp 0x4a4e91
mov ebp, dword [esp + 0x130]
jmp 0x4a4dd7
mov edx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0xe8]
jmp 0x4a311b
mov edx, dword [esp + 0x78]
inc edx
movzx ebx, byte [esp + 0x38]
shl ebx, 4
mov ebp, dword [esp + 0xc8]
mov edi, dword [esp + 0xe0]
mov ebp, dword [esp + 0x130]
mov esi, edi
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0xc8]
mov edi, dword [esp + 0x78]
cmp edi, 2
jge 0x4a4dd7
lea ebp, [edi + edx]
cmp esi, ebp
jle 0x4a4e3f
mov byte [esp + 0x38], bl
shr bl, 4
mov byte [esp + 0x43], bl
shl ebx, 4
movzx esi, byte [esp + 0x43]
add ebx, esi
mov byte [esp + 0x33], bl
mov esi, dword [esp + 0x304]
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0x18]
mov esi, dword [esi + 0x1c]
cmp ebx, ebp
jg 0x4a4f39
cmp edi, ebp
jle 0x4a4f30
mov edi, dword [esp + 0xf4]
cmp edi, edx
jl 0x4a4f40
cmp edi, esi
jge 0x4a4f40
mov dword [esp + 0x12c], ebx
nop
mov esi, dword [esp + 0x304]
mov ebx, dword [esi + 4]
mov dword [esp + 0x128], ebx
mov ebx, dword [esi]
sub edi, edx
imul edi, dword [esi + 0xc]
mov edx, dword [esp + 0x12c]
sub ebp, edx
lea edx, [ebp + edi]
mov ebp, dword [esp + 0x128]
cmp ebp, edx
jbe 0x4a4f4c
movzx ebp, byte [esp + 0x33]
xchg ebp, eax
mov byte [ebx + edx], al
xchg ebp, eax
jmp 0x4a4e5b
mov edi, dword [esp + 0xf4]
jmp 0x4a4f40
mov edi, dword [esp + 0xf4]
mov esi, dword [esp + 0x304]
jmp 0x4a4e5b
mov eax, edx
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
lea ebx, [esi + 2]
mov esi, dword [esp + 0x2dc]
movzx edi, byte [esp + 0x28]
mov edx, dword [esp + 0x2f0]
mov esi, edi
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0xcc], ebx
mov ebx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xcc]
mov edx, dword [esp + 0xe0]
cmp ebx, edx
jge 0x4a4fd0
shr ebx, 0x1f
mov esi, dword [esp + 0xcc]
add ebx, esi
sar ebx, 1
cmp ebx, ebp
jae 0x4a50d7
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x1b0], eax
xor eax, eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x1b0]
jmp 0x4a506b
mov edx, dword [esp + 0x2f0]
mov esi, dword [esp + 0xe0]
jmp 0x4a4e48
mov ecx, dword [esp + 0x2dc]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov edx, dword [esp + 0xf4]
mov dword [esp + 8], edx
mov byte [esp + 0xc], al
mov byte [esp + 0xd], al
mov byte [esp + 0xe], al
movzx eax, byte [esp + 0x3f]
mov byte [esp + 0xf], al
call fcn.0049b140
mov eax, dword [esp + 0x7c]
inc eax
movzx ebx, byte [esp + 0x39]
shl ebx, 4
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x2dc]
movzx esi, byte [esp + 0x28]
mov edi, dword [esp + 0xf4]
mov ecx, dword [esp + 0x2fc]
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0xcc]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x134]
mov edi, dword [esp + 0x7c]
cmp edi, 2
jge 0x4a4f5e
add edi, esi
cmp edx, edi
jle 0x4a4f5e
mov byte [esp + 0x39], bl
shr bl, 4
mov byte [esp + 0x43], bl
shl ebx, 4
movzx eax, byte [esp + 0x43]
add eax, ebx
movzx ebx, byte [esp + 0x28]
cmp bl, al
jne 0x4a50ba
mov byte [esp + 0x1a0], al
xor eax, eax
mov byte [esp + 0x3f], al
movzx eax, byte [esp + 0x1a0]
jmp 0x4a4fe3
mov byte [esp + 0x1a8], al
mov eax, 0xffffffff
mov byte [esp + 0x3f], al
movzx eax, byte [esp + 0x1a8]
jmp 0x4a4fe3
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
add edx, 4
mov ebx, dword [esp + 0x304]
mov edi, dword [esp + 0xf4]
mov ebx, dword [esp + 0x30c]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0x2f0]
mov ebx, dword [esp + 0xd0]
cmp ebx, esi
jge 0x4a5158
sar ebx, 0x1f
shr ebx, 0x1e
mov edx, dword [esp + 0xd0]
add ebx, edx
sar ebx, 2
cmp ebx, ebp
jae 0x4a526a
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x190], eax
xor eax, eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x190]
jmp 0x4a51a9
mov ebp, dword [esp + 0x130]
jmp 0x4a50e0
mov edx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0xe8]
jmp 0x4a311b
mov edx, dword [esp + 0x80]
inc edx
shl edi, 2
mov ebx, dword [esp + 0xd0]
mov ebp, dword [esp + 0xe0]
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x80], edx
mov ebx, edi
mov edx, dword [esp + 0xd0]
mov edi, dword [esp + 0x2f4]
mov edi, dword [esp + 0x80]
cmp edi, 4
jge 0x4a50e0
lea ebp, [edi + edx]
cmp esi, ebp
jle 0x4a514f
mov byte [esp + 0x3a], bl
mov esi, dword [esp + 0x304]
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
mov edi, dword [esi + 0x18]
mov esi, dword [esi + 0x1c]
cmp edx, ebp
jg 0x4a5249
cmp edi, ebp
jle 0x4a5240
mov edi, dword [esp + 0xf4]
cmp edi, ebx
jl 0x4a5250
cmp edi, esi
jge 0x4a5250
mov dword [esp + 0x12c], edx
nop
mov esi, dword [esp + 0x304]
mov edx, dword [esi + 4]
mov dword [esp + 0x128], edx
mov edx, dword [esi]
sub edi, ebx
imul edi, dword [esi + 0xc]
mov ebx, dword [esp + 0x12c]
sub ebp, ebx
lea ebx, [ebp + edi]
mov ebp, dword [esp + 0x128]
cmp ebp, ebx
jbe 0x4a5261
movzx ebp, byte [esp + 0x3a]
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 0x4a516b
mov edi, dword [esp + 0xf4]
jmp 0x4a5250
mov edi, dword [esp + 0xf4]
mov esi, dword [esp + 0x304]
movzx edi, byte [esp + 0x3a]
jmp 0x4a516b
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
lea ebx, [esi + 4]
mov esi, dword [esp + 0x2dc]
movzx edi, byte [esp + 0x29]
mov edx, dword [esp + 0x2f0]
mov esi, edi
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0xd4], ebx
mov ebx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xd4]
mov edx, dword [esp + 0xe0]
cmp ebx, edx
jge 0x4a52ec
sar ebx, 0x1f
shr ebx, 0x1e
mov esi, dword [esp + 0xd4]
add ebx, esi
sar ebx, 2
cmp ebx, ebp
jae 0x4a53e1
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x180], eax
xor eax, eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x180]
jmp 0x4a538d
mov edx, dword [esp + 0x2f0]
mov esi, dword [esp + 0xe0]
jmp 0x4a5158
mov eax, dword [esp + 0x2dc]
mov dword [esp], eax
mov dword [esp + 4], edi
mov ecx, dword [esp + 0xf4]
mov dword [esp + 8], ecx
mov byte [esp + 0xc], bl
mov byte [esp + 0xd], bl
mov byte [esp + 0xe], bl
movzx edx, byte [esp + 0x40]
mov byte [esp + 0xf], dl
call fcn.0049b140
mov eax, dword [esp + 0x84]
inc eax
movzx ebx, byte [esp + 0x3b]
shl ebx, 2
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x2dc]
movzx esi, byte [esp + 0x29]
mov edi, dword [esp + 0xf4]
mov ecx, dword [esp + 0x2fc]
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0xd4]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x134]
mov edi, dword [esp + 0x84]
cmp edi, 4
jge 0x4a5273
add edi, esi
cmp edx, edi
jle 0x4a5273
mov byte [esp + 0x3b], bl
shr bl, 6
imul ebx, ebx, 0x55
movzx eax, byte [esp + 0x29]
cmp al, bl
jne 0x4a53cc
mov byte [esp + 0x170], al
xor eax, eax
mov byte [esp + 0x40], al
jmp 0x4a52ff
mov byte [esp + 0x178], al
mov eax, 0xffffffff
mov byte [esp + 0x40], al
jmp 0x4a52ff
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
add edx, 8
mov ebx, dword [esp + 0x304]
mov edi, dword [esp + 0xf4]
mov ebx, dword [esp + 0x30c]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x2f0]
mov ebx, dword [esp + 0xd8]
cmp ebx, esi
jge 0x4a5462
sar ebx, 0x1f
shr ebx, 0x1d
mov edx, dword [esp + 0xd8]
add ebx, edx
sar ebx, 3
cmp ebx, ebp
jae 0x4a5576
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x160], eax
xor eax, eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x160]
jmp 0x4a54b2
mov ebp, dword [esp + 0x130]
jmp 0x4a53ea
mov edx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0xe8]
jmp 0x4a311b
mov edx, dword [esp + 0x88]
inc edx
shl edi, 1
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0xe0]
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x88], edx
mov ebx, edi
mov edx, dword [esp + 0xd8]
mov edi, dword [esp + 0x2f4]
mov edi, dword [esp + 0x88]
cmp edi, 8
jge 0x4a53ea
lea ebp, [edi + edx]
cmp esi, ebp
jle 0x4a5459
mov byte [esp + 0x3c], bl
mov esi, dword [esp + 0x304]
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
mov edi, dword [esi + 0x18]
mov esi, dword [esi + 0x1c]
cmp edx, ebp
jg 0x4a5555
cmp edi, ebp
jle 0x4a554c
mov edi, dword [esp + 0xf4]
cmp edi, ebx
jl 0x4a555c
cmp edi, esi
jge 0x4a555c
mov dword [esp + 0x12c], edx
nop
mov esi, dword [esp + 0x304]
mov edx, dword [esi + 4]
mov dword [esp + 0x128], edx
mov edx, dword [esi]
sub edi, ebx
imul edi, dword [esi + 0xc]
mov ebx, dword [esp + 0x12c]
sub ebp, ebx
lea ebx, [ebp + edi]
mov ebp, dword [esp + 0x128]
cmp ebp, ebx
jbe 0x4a556d
movzx ebp, byte [esp + 0x3c]
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 0x4a5475
mov edi, dword [esp + 0xf4]
jmp 0x4a555c
mov edi, dword [esp + 0xf4]
mov esi, dword [esp + 0x304]
movzx edi, byte [esp + 0x3c]
jmp 0x4a5475
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
lea ebx, [esi + 8]
mov esi, dword [esp + 0x2dc]
movzx edi, byte [esp + 0x2a]
mov edx, dword [esp + 0x2f0]
mov esi, edi
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0xdc], ebx
mov ebx, dword [esp + 0x30c]
mov ebx, dword [esp + 0xdc]
mov edx, dword [esp + 0xe0]
cmp ebx, edx
jge 0x4a55f8
sar ebx, 0x1f
shr ebx, 0x1d
mov esi, dword [esp + 0xdc]
add ebx, esi
sar ebx, 3
cmp ebx, ebp
jae 0x4a56eb
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x150], eax
xor eax, eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x150]
jmp 0x4a5698
mov edx, dword [esp + 0x2f0]
mov esi, dword [esp + 0xe0]
jmp 0x4a5462
mov eax, dword [esp + 0x2dc]
mov dword [esp], eax
mov dword [esp + 4], edi
mov ecx, dword [esp + 0xf4]
mov dword [esp + 8], ecx
mov byte [esp + 0xc], bl
mov byte [esp + 0xd], bl
mov byte [esp + 0xe], bl
movzx edx, byte [esp + 0x41]
mov byte [esp + 0xf], dl
call fcn.0049b140
mov eax, dword [esp + 0x8c]
inc eax
movzx ebx, byte [esp + 0x3d]
shl ebx, 1
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x2dc]
movzx esi, byte [esp + 0x2a]
mov edi, dword [esp + 0xf4]
mov ecx, dword [esp + 0x2fc]
mov ebp, dword [esp + 0x130]
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x134]
mov edi, dword [esp + 0x8c]
cmp edi, 8
jge 0x4a557f
add edi, esi
cmp edx, edi
jle 0x4a557f
mov byte [esp + 0x3d], bl
shr bl, 7
neg ebx
movzx eax, byte [esp + 0x2a]
cmp al, bl
jne 0x4a56d6
mov byte [esp + 0x140], al
xor eax, eax
mov byte [esp + 0x41], al
jmp 0x4a560b
mov byte [esp + 0x148], al
mov eax, 0xffffffff
mov byte [esp + 0x41], al
jmp 0x4a560b
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, dword [esp + 0x2d0]
movzx ecx, byte [ebx + eax]
shr cl, 1
add ecx, ebp
mov byte [edi + ebx], cl
lea ecx, [ebx + 1]
mov ebp, dword [esp + 0x130]
mov eax, dword [esp + 0x134]
mov ebx, dword [esp + 0x2d0]
mov dword [esp + 0x110], ecx
mov ecx, dword [esp + 0x2fc]
mov ebx, dword [esp + 0x110]
cmp ebx, esi
jge 0x4a574a
cmp ebx, ebp
jae 0x4a57f0
movzx ebp, byte [ebx + edi]
jb 0x4a56f4
jmp 0x4a57e2
mov ebx, dword [esp + 0x2d0]
jmp 0x4a5792
mov eax, dword [esp + 0x2d0]
movzx ecx, byte [ebx + eax]
add ecx, esi
mov esi, ecx
shr ecx, 0x1f
add ecx, esi
sar ecx, 1
movzx esi, byte [esp + 0x43]
add ecx, esi
mov byte [edi + ebx], cl
lea esi, [ebx + 1]
mov ecx, dword [esp + 0x11c]
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x2fc]
mov ebx, dword [esp + 0x2d0]
cmp esi, ebp
jge 0x4a32af
jae 0x4a57d9
mov dword [esp + 0x10c], esi
movzx ebx, byte [esi + edi]
mov byte [esp + 0x43], bl
mov ebx, dword [esp + 0x11c]
sub esi, ebx
cmp esi, ebp
jae 0x4a57d0
movzx esi, byte [esi + edi]
mov ebx, dword [esp + 0x10c]
cmp ebx, ebp
jb 0x4a5753
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, esi
mov ecx, ebp
call fcn.0045e460
mov eax, esi
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, dword [esp + 0x130]
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
movzx eax, byte [esi + edi]
add eax, ebx
mov byte [edi + esi], al
inc esi
mov ebx, dword [esp + 0x2d0]
mov eax, dword [esp + 0x134]
cmp esi, ebp
jge 0x4a32af
movzx ebx, byte [esi + ebx]
jb 0x4a57f9
mov eax, esi
mov ecx, ebp
call fcn.0045e460
mov eax, dword [esp + 0x2f4]
movzx ebx, byte [ebx + eax]
add ebx, edi
mov edi, dword [esp + 0x114]
mov byte [eax + edi], bl
lea ebx, [edi + 1]
mov eax, dword [esp + 0x134]
mov edi, dword [esp + 0x2f4]
cmp ebx, ebp
jge 0x4a32af
jae 0x4a5874
mov dword [esp + 0x114], ebx
movzx edi, byte [ebx + edi]
sub ebx, esi
cmp ebx, ebp
jb 0x4a5828
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, ebx
mov ecx, ebp
call fcn.0045e460
mov eax, 1
xor ecx, ecx
call fcn.0045e4c0
mov eax, 1
xor ecx, ecx
call fcn.0045e4c0
call fcn.00432c00
call fcn.00432c00
call fcn.0045e460
nop
call fcn.0045cfd0
jmp fcn.004a2590