Function at 0x4a2870
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 0x4a5a85
sub esp, 0x304
mov edx, dword [esp + 0x308]
mov ebx, dword [edx + 0x18]
mov ebp, dword [edx + 0x1c]
cmp dword [edx + 0x33c], 1
jne 0x4a297a
movzx esi, byte [esp + 0x318]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4a2982
mov edi, dword [0x4cff90]
mov ecx, dword [0x4cff94]
mov eax, dword [esp + 0x314]
cmp eax, ecx
jae 0x4a5a7f
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 0x4a5a7a
cmp ecx, 0xffffffff
je 0x4a2904
cdq
idiv ecx
jmp 0x4a2906
neg eax
sub ebp, edi
lea ecx, [esi + ebp - 1]
test esi, esi
je 0x4a5a75
mov dword [esp + 0x68], eax
mov eax, ecx
cmp esi, 0xffffffff
je 0x4a2924
cdq
idiv esi
jmp 0x4a2926
neg eax
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x4a2932
test eax, eax
jne 0x4a2965
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 0x4a2982
movzx esi, byte [esp + 0x318]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x11c], ebp
mov ecx, dword [edx + 0x30]
cmp ecx, 0xa
jg 0x4a2db0
cmp ecx, 5
jg 0x4a2bb5
lea edi, [ecx - 1]
cmp edi, 3
ja 0x4a2aef
mov eax, dword [edx + 0x20]
mov dword [esp + 0x8c], eax
movzx ecx, byte [edx + 0x340]
test cl, cl
je 0x4a2a27
nop
test ebx, ebx
jge 0x4a29ce
mov ecx, ebx
xor edi, edi
jmp 0x4a29d4
mov ecx, ebx
xor ebx, ebx
mov edi, ecx
test ebp, ebp
jge 0x4a29ea
mov dword [esp + 0x2b4], eax
xor eax, eax
mov dword [esp + 0x114], eax
jmp 0x4a29fc
xor ebp, ebp
mov ebp, dword [esp + 0x11c]
mov dword [esp + 0x114], ebp
xor ebp, ebp
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov eax, dword [esp + 0x114]
mov dword [esp + 0xc], eax
call fcn.00493800
mov eax, dword [esp + 0x10]
lea ecx, [0x51e5d0]
mov edx, eax
xor ebx, ebx
jmp 0x4a2a89
nop
test ebx, ebx
jge 0x4a2a32
mov ecx, ebx
xor edi, edi
jmp 0x4a2a38
mov ecx, ebx
xor ebx, ebx
mov edi, ecx
test ebp, ebp
jge 0x4a2a4e
mov dword [esp + 0x2ac], eax
xor eax, eax
mov dword [esp + 0x110], eax
jmp 0x4a2a60
xor ebp, ebp
mov ebp, dword [esp + 0x11c]
mov dword [esp + 0x110], ebp
xor ebp, ebp
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov eax, dword [esp + 0x110]
mov dword [esp + 0xc], eax
call fcn.00494320
mov eax, dword [esp + 0x10]
lea ecx, [0x51e5ec]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x2d4], ebp
xor esi, esi
mov dword [esp + 0x2c0], esi
xor ebp, ebp
mov dword [esp + 0x2e4], ebp
xor ebp, ebp
mov dword [esp + 0x2d0], ebp
mov dword [esp + 0x118], ecx
mov dword [esp + 0x2e8], eax
mov eax, ebx
mov ecx, edx
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x68]
jmp 0x4a325e
cmp ecx, 5
jne 0x4a3217
nop
test ebx, ebx
jge 0x4a2b03
mov eax, ebx
xor ecx, ecx
jmp 0x4a2b09
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2b11
xor edi, edi
jmp 0x4a2b1a
xor ebp, ebp
mov edi, dword [esp + 0x11c]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493800
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
mov ecx, eax
xor edi, edi
xor eax, eax
mov dword [esp + 0x2d4], eax
xor edx, edx
mov dword [esp + 0x2c0], edx
xor ebx, ebx
mov dword [esp + 0x2e4], ebx
xor ebp, ebp
mov dword [esp + 0x2d0], ebp
lea esi, [0x51e5d0]
mov dword [esp + 0x118], esi
mov dword [esp + 0x2e8], ecx
mov eax, 0x10
mov dword [esp + 0x8c], eax
xor eax, eax
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
jmp 0x4a325e
cmp ecx, 6
jne 0x4a2cc5
movzx eax, byte [edx + 0x340]
test al, al
je 0x4a2c0f
nop
test ebx, ebx
jge 0x4a2bd4
mov eax, ebx
xor ecx, ecx
jmp 0x4a2bda
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2be2
xor edi, edi
jmp 0x4a2beb
xor ebp, ebp
mov edi, dword [esp + 0x11c]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493800
mov eax, dword [esp + 0x10]
lea ecx, [0x51e5d0]
mov edx, eax
xor ebx, ebx
jmp 0x4a2c53
nop
test ebx, ebx
jge 0x4a2c1a
mov eax, ebx
xor ecx, ecx
jmp 0x4a2c20
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2c28
xor edi, edi
jmp 0x4a2c31
xor ebp, ebp
mov edi, dword [esp + 0x11c]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00492c70
mov eax, dword [esp + 0x10]
lea ecx, [0x51e4d4]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
mov edi, ebx
xor ebx, ebx
mov dword [esp + 0x2d4], ebx
xor ebp, ebp
mov dword [esp + 0x2c0], ebp
xor esi, esi
mov dword [esp + 0x2e4], esi
xor ebx, ebx
mov dword [esp + 0x2d0], ebx
mov dword [esp + 0x118], ecx
mov dword [esp + 0x2e8], eax
mov ebx, 0x18
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x68]
xor eax, eax
mov ecx, edx
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
mov edx, dword [esp + 0x308]
jmp 0x4a325e
mov eax, dword [edx + 0x20]
test ebx, ebx
jge 0x4a2cd2
mov ecx, ebx
xor edi, edi
jmp 0x4a2cd8
mov ecx, ebx
xor ebx, ebx
mov edi, ecx
mov dword [esp + 0x8c], eax
test ebp, ebp
jge 0x4a2cf5
mov dword [esp + 0x2a4], eax
xor eax, eax
mov dword [esp + 0x10c], eax
jmp 0x4a2d07
xor ebp, ebp
mov ebp, dword [esp + 0x11c]
mov dword [esp + 0x10c], 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 + 0x10c]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], esi
call fcn.00494d10
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x2d4], eax
xor edx, edx
mov dword [esp + 0x2c0], edx
xor ebx, ebx
mov dword [esp + 0x2e4], ebx
xor ebp, ebp
mov dword [esp + 0x2d0], ebp
lea esi, [0x51e598]
mov dword [esp + 0x118], esi
mov dword [esp + 0x2e8], eax
xor eax, eax
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
jmp 0x4a325e
cmp ecx, 0xc
jg 0x4a2f82
cmp ecx, 0xb
jne 0x4a2e7f
nop
test ebx, ebx
jge 0x4a2dcd
mov eax, ebx
xor ecx, ecx
jmp 0x4a2dd3
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2ddb
xor edi, edi
jmp 0x4a2de4
xor ebp, ebp
mov edi, dword [esp + 0x11c]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493800
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
mov ecx, eax
xor edi, edi
xor eax, eax
mov dword [esp + 0x2d4], eax
xor edx, edx
mov dword [esp + 0x2c0], edx
xor ebx, ebx
mov dword [esp + 0x2e4], ebx
xor ebp, ebp
mov dword [esp + 0x2d0], ebp
lea esi, [0x51e5d0]
mov dword [esp + 0x118], esi
mov dword [esp + 0x2e8], ecx
mov eax, 0x20
mov dword [esp + 0x8c], eax
xor eax, eax
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
jmp 0x4a325e
movzx eax, byte [edx + 0x340]
test al, al
je 0x4a2ed0
nop
test ebx, ebx
jge 0x4a2e95
mov eax, ebx
xor ecx, ecx
jmp 0x4a2e9b
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2ea3
xor edi, edi
jmp 0x4a2eac
xor ebp, ebp
mov edi, dword [esp + 0x11c]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493f20
mov eax, dword [esp + 0x10]
lea ecx, [0x51e5b4]
mov edx, eax
xor ebx, ebx
jmp 0x4a2f14
nop
test ebx, ebx
jge 0x4a2edb
mov eax, ebx
xor ecx, ecx
jmp 0x4a2ee1
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2ee9
xor edi, edi
jmp 0x4a2ef2
xor ebp, ebp
mov edi, dword [esp + 0x11c]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00494850
mov eax, dword [esp + 0x10]
lea ecx, [0x51e4f0]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x2d4], ebp
mov dword [esp + 0x2c0], ebx
xor esi, esi
mov dword [esp + 0x2e4], esi
mov dword [esp + 0x2d0], edx
mov dword [esp + 0x118], ecx
mov dword [esp + 0x2e8], eax
mov ebp, 0x10
mov dword [esp + 0x8c], ebp
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x68]
xor eax, eax
xor ecx, ecx
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
jmp 0x4a325e
cmp ecx, 0xd
jne 0x4a3048
nop
test ebx, ebx
jge 0x4a2f96
mov eax, ebx
xor ecx, ecx
jmp 0x4a2f9c
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a2fa4
xor edi, edi
jmp 0x4a2fad
xor ebp, ebp
mov edi, dword [esp + 0x11c]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493f20
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
xor ecx, ecx
xor edi, edi
xor edx, edx
mov dword [esp + 0x2d4], edx
xor ebx, ebx
mov dword [esp + 0x2c0], ebx
xor ebp, ebp
mov dword [esp + 0x2e4], ebp
mov dword [esp + 0x2d0], eax
lea esi, [0x51e5b4]
mov dword [esp + 0x118], esi
mov dword [esp + 0x2e8], eax
mov ecx, 0x20
mov dword [esp + 0x8c], ecx
xor eax, eax
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
xor ecx, ecx
jmp 0x4a325e
cmp ecx, 0xe
jne 0x4a3154
movzx eax, byte [edx + 0x340]
test al, al
je 0x4a30a2
nop
test ebx, ebx
jge 0x4a3067
mov eax, ebx
xor ecx, ecx
jmp 0x4a306d
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a3075
xor edi, edi
jmp 0x4a307e
xor ebp, ebp
mov edi, dword [esp + 0x11c]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493f20
mov eax, dword [esp + 0x10]
lea ecx, [0x51e5b4]
mov edx, eax
xor ebx, ebx
jmp 0x4a30e6
nop
test ebx, ebx
jge 0x4a30ad
mov eax, ebx
xor ecx, ecx
jmp 0x4a30b3
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a30bb
xor edi, edi
jmp 0x4a30c4
xor ebp, ebp
mov edi, dword [esp + 0x11c]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493180
mov eax, dword [esp + 0x10]
lea ecx, [0x51e528]
xor edx, edx
mov ebx, eax
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x2d4], ebp
xor esi, esi
mov dword [esp + 0x2c0], esi
mov dword [esp + 0x2e4], ebx
mov dword [esp + 0x2d0], edx
mov dword [esp + 0x118], ecx
mov dword [esp + 0x2e8], eax
mov ebp, 0x30
mov dword [esp + 0x8c], ebp
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x68]
xor eax, eax
xor ecx, ecx
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
jmp 0x4a325e
cmp ecx, 0xf
jne 0x4a3217
nop
test ebx, ebx
jge 0x4a3168
mov eax, ebx
xor ecx, ecx
jmp 0x4a316e
mov eax, ebx
xor ebx, ebx
mov ecx, eax
test ebp, ebp
jge 0x4a3176
xor edi, edi
jmp 0x4a317f
xor ebp, ebp
mov edi, dword [esp + 0x11c]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
call fcn.00493f20
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
xor ecx, ecx
xor edi, edi
xor edx, edx
mov dword [esp + 0x2d4], edx
xor ebx, ebx
mov dword [esp + 0x2c0], ebx
xor ebp, ebp
mov dword [esp + 0x2e4], ebp
mov dword [esp + 0x2d0], eax
lea esi, [0x51e5b4]
mov dword [esp + 0x118], esi
mov dword [esp + 0x2e8], eax
mov ecx, 0x40
mov dword [esp + 0x8c], ecx
xor eax, eax
mov edx, dword [esp + 0x308]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x11c]
movzx esi, byte [esp + 0x318]
xor ecx, ecx
jmp 0x4a325e
xor eax, eax
xor ecx, ecx
xor edi, edi
xor eax, eax
mov dword [esp + 0x2d4], eax
xor eax, eax
mov dword [esp + 0x2c0], eax
xor eax, eax
mov dword [esp + 0x2e4], eax
xor eax, eax
mov dword [esp + 0x2d0], eax
xor eax, eax
mov dword [esp + 0x118], eax
xor eax, eax
mov dword [esp + 0x2e8], eax
xor eax, eax
mov dword [esp + 0x8c], eax
xor eax, eax
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4a33b6
mov dword [esp + 0x2cc], edi
mov esi, eax
mov eax, dword [esp + 0x8c]
mul ebx
mov edi, dword [esp + 0x8c]
sar edi, 0x1f
imul edi, ebx
add edx, edi
sar ebx, 0x1f
mov edi, dword [esp + 0x8c]
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 0x4a337f
mov dword [esp + 0x130], edi
mov dword [esp + 0x80], ebx
mov dword [esp + 0x2e0], ecx
mov dword [esp + 0x300], eax
mov dword [esp + 0x12c], esi
lea eax, [0x4e6aa0]
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, [0x4e6aa0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x80]
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 + 0x88], eax
mov ecx, dword [esp + 0x14]
xor edx, edx
mov ebx, dword [esp + 0x2fc]
xor ebp, ebp
jmp 0x4a3407
mov dword [esp + 0x31c], 0
mov dword [esp + 0x320], 0
lea eax, [0x51e2e8]
mov dword [esp + 0x324], eax
lea eax, [0x51de30]
mov dword [esp + 0x328], eax
add esp, 0x304
ret
mov eax, dword [esp + 0x118]
mov dword [esp + 0x31c], eax
mov eax, dword [esp + 0x2e8]
mov dword [esp + 0x320], eax
mov dword [esp + 0x324], 0
mov dword [esp + 0x328], 0
add esp, 0x304
ret
mov esi, dword [esp + 0x84]
lea ebp, [esi + 1]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x2bc]
mov esi, dword [esp + 0x11c]
cmp ebp, esi
jge 0x4a3c1a
mov dword [esp + 0x2bc], ecx
mov dword [esp + 0x2f8], ebx
mov dword [esp + 0x84], ebp
mov dword [esp + 0x5c], 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 0x4a3b1c
mov ebx, dword [esp + 0x130]
cmp ebx, 1
jb 0x4a5a69
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 0x4a5a5d
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x2ec], edi
mov eax, ebx
mov ebx, dword [esp + 0x2bc]
mov edx, ebx
add ebx, ecx
mov ecx, esi
movzx esi, byte [esi]
xchg esi, eax
cmp al, 1
xchg esi, eax
ja 0x4a34ec
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a357d
mov ebx, dword [esp + 0x88]
mov esi, ebx
jmp 0x4a5a33
mov dword [esp + 0x2f0], ebx
xchg esi, eax
cmp al, 2
xchg esi, eax
jne 0x4a3501
xor esi, esi
jmp 0x4a59f7
xchg esi, eax
cmp al, 3
xchg esi, eax
jne 0x4a3528
mov esi, dword [esp + 0x88]
mov dword [esp + 0x134], eax
xor eax, eax
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x134]
jmp 0x4a591b
xchg esi, eax
cmp al, 4
xchg esi, eax
jne 0x4a3ae5
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 + 0x88]
mov dword [esp + 0x18], eax
call fcn.004a12e0
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2bc]
mov ebp, dword [esp + 0x12c]
mov edi, dword [esp + 0x2ec]
mov ebx, dword [esp + 0x308]
mov esi, dword [ebx + 0x30]
cmp esi, 7
jg 0x4a3886
cmp esi, 3
jg 0x4a36ae
cmp esi, 1
jne 0x4a35f4
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a35d4
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x31], al
xchg esi, eax
mov dword [esp + 0x154], eax
xor eax, eax
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x154]
jmp 0x4a57a7
mov esi, dword [esp + 0x68]
mov dword [esp + 0x164], eax
xor eax, eax
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x164]
jmp 0x4a561b
cmp esi, 2
jne 0x4a364f
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a362f
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x30], al
xchg esi, eax
mov dword [esp + 0x184], eax
xor eax, eax
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x184]
jmp 0x4a54ad
mov esi, dword [esp + 0x68]
mov dword [esp + 0x194], eax
xor eax, eax
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x194]
jmp 0x4a5323
cmp esi, 3
jne 0x4a3ad5
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a368e
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x2f], al
xchg esi, eax
mov dword [esp + 0x1b4], eax
xor eax, eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x1b4]
jmp 0x4a519e
mov esi, dword [esp + 0x68]
mov dword [esp + 0x1c4], eax
xor eax, eax
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x1c4]
jmp 0x4a5011
cmp esi, 5
jg 0x4a3787
cmp esi, 4
jne 0x4a3767
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a36f6
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x2e], al
xchg esi, eax
mov dword [esp + 0x1dc], eax
xor eax, eax
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x1dc]
jmp 0x4a4f75
mov esi, dword [esp + 0x300]
mov ebx, dword [esi + 4]
mov edx, dword [esi]
mov esi, dword [esi + 8]
mov edi, dword [esp + 0x5c]
cmp edi, ebx
ja 0x4a4edb
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 0x4a3728
mov ebp, ebx
mov ebx, dword [esp + 0x2ec]
cmp edx, ebx
je 0x4a3755
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 + 0x5c]
mov ebx, dword [esp + 0x300]
mov ebp, dword [ebx + 0xc]
lea edx, [edi + ebp]
jmp 0x4a4ecf
mov esi, dword [esp + 0x68]
mov dword [esp + 0x1e4], eax
xor eax, eax
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x1e4]
jmp 0x4a4e84
cmp esi, 6
jne 0x4a3866
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a3814
mov esi, dword [esp + 0x2e0]
mov edi, dword [esi + 4]
mov dword [esp + 0x94], edi
mov esi, dword [esi]
mov dword [esp + 0x2dc], esi
movzx esi, byte [ebx + 0x342]
xchg esi, eax
mov byte [esp + 0x29], al
xchg esi, eax
movzx edi, byte [ebx + 0x344]
xchg edi, eax
mov byte [esp + 0x33], al
xchg edi, eax
movzx ebx, byte [ebx + 0x346]
mov byte [esp + 0x32], bl
mov dword [esp + 0x204], eax
xor eax, eax
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x70], eax
mov dword [esp + 0x1fc], ecx
xor ecx, ecx
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x204]
mov ecx, dword [esp + 0x1fc]
jmp 0x4a4c8c
mov esi, dword [esp + 0x2cc]
mov ebx, dword [esi + 4]
mov dword [esp + 0x90], ebx
mov esi, dword [esi]
mov dword [esp + 0x2d8], esi
mov dword [esp + 0x214], eax
xor eax, eax
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x20c], ecx
xor ecx, ecx
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x214]
mov ecx, dword [esp + 0x20c]
jmp 0x4a4b47
mov esi, dword [esp + 0x68]
mov dword [esp + 0x224], eax
xor eax, eax
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x224]
jmp 0x4a4963
cmp esi, 0xb
jg 0x4a397f
cmp esi, 9
jg 0x4a38d9
cmp esi, 8
jne 0x4a38b9
mov esi, dword [esp + 0x68]
mov dword [esp + 0x234], eax
xor eax, eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x234]
jmp 0x4a47a0
mov esi, dword [esp + 0x68]
mov dword [esp + 0x244], eax
xor eax, eax
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x244]
jmp 0x4a45e1
cmp esi, 0xa
jne 0x4a390e
mov esi, dword [esp + 0x2d4]
cmp dword [esi + 0x24], 0x100
je 0x4a44c0
mov dword [esp + 0x24c], eax
xor eax, eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x24c]
jmp 0x4a4557
mov esi, dword [esp + 0x2e0]
mov ebx, dword [esi + 4]
mov edx, dword [esi]
mov esi, dword [esi + 8]
mov edi, dword [esp + 0x5c]
cmp edi, ebx
ja 0x4a44b7
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 0x4a3940
mov ebp, ebx
mov ebx, dword [esp + 0x2ec]
cmp edx, ebx
je 0x4a396d
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 + 0x5c]
mov ebx, dword [esp + 0x2e0]
mov ebp, dword [ebx + 0xc]
lea edx, [edi + ebp]
jmp 0x4a33ef
cmp esi, 0xd
jg 0x4a3a12
cmp esi, 0xc
jne 0x4a39f2
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a39d2
movzx esi, byte [ebx + 0x341]
shl esi, 8
movzx ebx, byte [ebx + 0x342]
or ebx, esi
mov word [esp + 0x54], bx
mov esi, dword [esp + 0x68]
mov dword [esp + 0x264], eax
xor eax, eax
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x264]
jmp 0x4a4437
mov esi, dword [esp + 0x68]
mov dword [esp + 0x26c], eax
xor eax, eax
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x26c]
jmp 0x4a435f
mov esi, dword [esp + 0x68]
mov dword [esp + 0x274], eax
xor eax, eax
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x274]
jmp 0x4a4241
cmp esi, 0xe
jne 0x4a3ab0
movzx esi, byte [ebx + 0x340]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a3a90
movzx esi, byte [ebx + 0x341]
shl esi, 8
movzx edx, byte [ebx + 0x342]
or edx, esi
mov word [esp + 0x44], dx
movzx esi, byte [ebx + 0x343]
shl esi, 8
movzx edx, byte [ebx + 0x344]
or edx, esi
mov word [esp + 0x58], dx
movzx esi, byte [ebx + 0x345]
shl esi, 8
movzx ebx, byte [ebx + 0x346]
or ebx, esi
mov word [esp + 0x56], bx
mov esi, dword [esp + 0x68]
mov dword [esp + 0x28c], eax
xor eax, eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x28c]
jmp 0x4a403c
mov esi, dword [esp + 0x68]
mov dword [esp + 0x294], eax
xor eax, eax
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x294]
jmp 0x4a3ec1
cmp esi, 0xf
jne 0x4a3ad5
mov esi, dword [esp + 0x68]
mov dword [esp + 0x29c], eax
xor eax, eax
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x29c]
jmp 0x4a3cf6
mov ebx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x5c]
jmp 0x4a33ef
mov dword [esp + 0x31c], 0
mov dword [esp + 0x320], 0
lea eax, [0x51e2fc]
mov dword [esp + 0x324], eax
lea eax, [0x51ddf0]
mov dword [esp + 0x328], eax
add esp, 0x304
ret
mov dword [esp + 0x2f8], ebx
mov dword [esp + 0x2c8], ebp
mov eax, dword [0x4cff64]
cmp dword [0x4cff60], ecx
je 0x4a3b3c
xor eax, eax
jmp 0x4a3b7b
mov dword [esp + 0x2c4], 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 + 0x2c4]
mov ebx, dword [esp + 0x2f8]
mov ebp, dword [esp + 0x2c8]
test al, al
jne 0x4a3bb8
mov eax, dword [0x4cff8c]
cmp dword [0x4cff88], ecx
je 0x4a3b91
xor eax, eax
jmp 0x4a3bb4
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 + 0x2c8]
test al, al
je 0x4a3bef
mov dword [esp + 0x31c], 0
mov dword [esp + 0x320], 0
lea eax, [0x51e2fc]
mov dword [esp + 0x324], eax
lea eax, [0x51ddd8]
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 + 0x118]
mov dword [esp + 0x31c], eax
mov eax, dword [esp + 0x2e8]
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 + 0x2d0]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov ebp, dword [esp + 0x84]
mov dword [esp + 8], ebp
movzx esi, word [esp + 0x48]
mov word [esp + 0xc], si
movzx esi, word [esp + 0x4e]
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.00493e40
mov eax, dword [esp + 0x98]
inc eax
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x2d0]
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x2ec]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2bc]
mov ebx, dword [esp + 0x308]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0x98]
cmp ebx, esi
jge 0x4a3dc2
shl ebx, 3
cmp ebx, ebp
jae 0x4a3e11
mov dword [esp + 0x128], ebx
mov edx, dword [esp + 0x98]
lea esi, [edi + edx*8]
movzx esi, byte [esi]
inc ebx
cmp ebx, ebp
jae 0x4a3e08
shl esi, 8
lea ebx, [edi + edx*8 + 1]
movzx ebx, byte [ebx]
or ebx, esi
mov word [esp + 0x48], bx
mov esi, dword [esp + 0x128]
lea ebx, [esi + 2]
cmp ebx, ebp
jae 0x4a3dff
lea ebx, [edi + edx*8 + 2]
movzx ebx, byte [ebx]
add esi, 3
cmp esi, ebp
jae 0x4a3df6
shl ebx, 8
lea esi, [edi + edx*8 + 3]
movzx esi, byte [esi]
or esi, ebx
mov word [esp + 0x4e], si
mov ebx, dword [esp + 0x128]
lea esi, [ebx + 4]
cmp esi, ebp
jae 0x4a3ded
lea esi, [edi + edx*8 + 4]
movzx esi, byte [esi]
add ebx, 5
cmp ebx, ebp
jae 0x4a3de4
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 + 0x128]
lea ebx, [esi + 6]
cmp ebx, ebp
jae 0x4a3ddb
lea ebx, [edi + edx*8 + 6]
movzx ebx, byte [ebx]
add esi, 7
cmp esi, ebp
jb 0x4a3c53
jmp 0x4a3dd2
mov ebx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x5c]
jmp 0x4a33ef
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 + 0x2e4]
mov dword [esp], ecx
mov edx, dword [esp + 0x9c]
mov dword [esp + 4], edx
mov ebp, dword [esp + 0x84]
mov dword [esp + 8], ebp
movzx esi, word [esp + 0x4a]
mov word [esp + 0xc], si
movzx esi, word [esp + 0x50]
mov word [esp + 0xe], si
shl ebx, 8
or eax, ebx
mov word [esp + 0x10], ax
mov word [esp + 0x12], 0xffff
call fcn.004930a0
mov eax, dword [esp + 0x9c]
inc eax
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x2e4]
mov ebx, dword [esp + 0x2ec]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2bc]
mov ebx, dword [esp + 0x308]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0x9c]
cmp ebx, esi
jge 0x4a3f61
lea edx, [ebx + ebx*2]
mov dword [esp + 0x128], edx
shl edx, 1
cmp edx, ebp
jae 0x4a3f9e
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 0x4a3f95
shl ebx, 8
lea edx, [edi + esi*2 + 1]
movzx edx, byte [edx]
or edx, ebx
mov word [esp + 0x4a], dx
mov ebx, dword [esp + 0x124]
lea edx, [ebx + 2]
cmp edx, ebp
jae 0x4a3f8c
lea edx, [edi + esi*2 + 2]
movzx edx, byte [edx]
add ebx, 3
cmp ebx, ebp
jae 0x4a3f83
shl edx, 8
lea ebx, [edi + esi*2 + 3]
movzx ebx, byte [ebx]
or ebx, edx
mov word [esp + 0x50], bx
mov edx, dword [esp + 0x124]
lea ebx, [edx + 4]
cmp ebx, ebp
jae 0x4a3f7a
lea ebx, [edi + esi*2 + 4]
movzx ebx, byte [ebx]
add edx, 5
cmp edx, ebp
jb 0x4a3e1a
jmp 0x4a3f71
mov ebx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x5c]
jmp 0x4a33ef
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 + 0x2d0]
mov dword [esp], ecx
mov ebp, dword [esp + 0xa0]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x84]
mov dword [esp + 8], esi
mov word [esp + 0xc], dx
mov word [esp + 0xe], ax
mov word [esp + 0x10], bx
movzx eax, word [esp + 0x40]
mov word [esp + 0x12], ax
call fcn.00493e40
mov eax, dword [esp + 0xa0]
inc eax
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x2d0]
movzx ebx, word [esp + 0x44]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x2ec]
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x2f8]
movzx edx, word [esp + 0x58]
movzx ebx, word [esp + 0x56]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0xa0]
cmp ebx, esi
jge 0x4a4166
lea esi, [ebx + ebx*2]
mov dword [esp + 0x128], esi
shl esi, 1
cmp esi, ebp
jae 0x4a419f
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 0x4a4196
shl edx, 8
lea esi, [edi + ebx*2 + 1]
movzx esi, byte [esi]
or esi, edx
mov word [esp + 0x4c], si
mov edx, dword [esp + 0x124]
lea esi, [edx + 2]
cmp esi, ebp
jae 0x4a418d
lea esi, [edi + ebx*2 + 2]
movzx esi, byte [esi]
add edx, 3
cmp edx, ebp
jae 0x4a4184
shl esi, 8
lea edx, [edi + ebx*2 + 3]
movzx edx, byte [edx]
or edx, esi
mov word [esp + 0x52], dx
mov esi, dword [esp + 0x124]
lea edx, [esi + 4]
cmp edx, ebp
jae 0x4a417b
lea edx, [edi + ebx*2 + 4]
movzx edx, byte [edx]
add esi, 5
cmp esi, ebp
jae 0x4a4172
shl edx, 8
lea ebx, [edi + ebx*2 + 5]
movzx ebx, byte [ebx]
or ebx, edx
movzx edx, word [esp + 0x4c]
movzx esi, word [esp + 0x44]
cmp dx, si
jne 0x4a413d
movzx eax, word [esp + 0x52]
movzx ecx, word [esp + 0x58]
cmp ax, cx
jne 0x4a4136
movzx ecx, word [esp + 0x56]
cmp bx, cx
jne 0x4a4147
mov word [esp + 0x27c], ax
xor eax, eax
mov word [esp + 0x40], ax
movzx eax, word [esp + 0x27c]
jmp 0x4a3fa7
movzx ecx, word [esp + 0x56]
jmp 0x4a4147
movzx eax, word [esp + 0x52]
movzx ecx, word [esp + 0x56]
mov word [esp + 0x284], ax
mov eax, 0xffffffff
mov word [esp + 0x40], ax
movzx eax, word [esp + 0x284]
jmp 0x4a3fa7
mov edx, dword [esp + 0x2bc]
jmp 0x4a3f61
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 + 0x2d0]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov ebp, dword [esp + 0x84]
mov dword [esp + 8], ebp
movzx esi, word [esp + 0x46]
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.00493e40
mov eax, dword [esp + 0xa4]
inc eax
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x2d0]
mov ebx, dword [esp + 0x2ec]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2bc]
mov ebx, dword [esp + 0x308]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0xa4]
cmp ebx, esi
jge 0x4a429f
shl ebx, 2
cmp ebx, ebp
jae 0x4a42ca
mov dword [esp + 0x128], ebx
mov edx, dword [esp + 0xa4]
lea esi, [edi + edx*4]
movzx esi, byte [esi]
inc ebx
cmp ebx, ebp
jae 0x4a42c1
shl esi, 8
lea ebx, [edi + edx*4 + 1]
movzx ebx, byte [ebx]
or ebx, esi
mov word [esp + 0x46], bx
mov esi, dword [esp + 0x128]
lea ebx, [esi + 2]
cmp ebx, ebp
jae 0x4a42b8
lea ebx, [edi + edx*4 + 2]
movzx ebx, byte [ebx]
add esi, 3
cmp esi, ebp
jb 0x4a41a8
jmp 0x4a42af
mov ebx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x5c]
jmp 0x4a33ef
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 + 0x2c0]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x84]
mov dword [esp + 8], ebx
shl esi, 8
or eax, esi
mov word [esp + 0xc], ax
call fcn.004947b0
mov eax, dword [esp + 0xa8]
inc eax
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x2c0]
mov ebx, dword [esp + 0x12c]
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x2ec]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2bc]
mov ebx, dword [esp + 0x308]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0xa8]
cmp ebx, esi
jge 0x4a4388
shl ebx, 1
cmp ebx, ebp
jae 0x4a43a1
mov edx, dword [esp + 0xa8]
lea esi, [edi + edx*2]
movzx esi, byte [esi]
inc ebx
cmp ebx, ebp
jb 0x4a42d3
jmp 0x4a4398
mov ebx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x5c]
jmp 0x4a33ef
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, dword [esp + 0x2d0]
mov dword [esp], eax
mov dword [esp + 4], esi
mov ecx, dword [esp + 0x84]
mov dword [esp + 8], ecx
mov word [esp + 0xc], dx
mov word [esp + 0xe], dx
mov word [esp + 0x10], dx
movzx edx, word [esp + 0x42]
mov word [esp + 0x12], dx
call fcn.00493e40
mov eax, dword [esp + 0xac]
inc eax
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x2d0]
movzx ebx, word [esp + 0x54]
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x2ec]
mov edi, dword [esp + 0x12c]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2bc]
mov ebp, edi
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0xac]
cmp edx, esi
jge 0x4a4499
shl edx, 1
cmp edx, ebp
jae 0x4a44ae
mov esi, dword [esp + 0xac]
lea ebx, [edi + esi*2]
movzx ebx, byte [ebx]
inc edx
cmp edx, ebp
jae 0x4a44a5
shl ebx, 8
lea edx, [edi + esi*2 + 1]
movzx edx, byte [edx]
or edx, ebx
movzx ebx, word [esp + 0x54]
cmp dx, bx
jne 0x4a4483
mov dword [esp + 0x254], eax
xor eax, eax
mov word [esp + 0x42], ax
jmp 0x4a43aa
mov dword [esp + 0x25c], eax
mov eax, 0xffffffff
mov word [esp + 0x42], ax
jmp 0x4a43aa
mov edx, dword [esp + 0x2bc]
jmp 0x4a4388
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 + 0x5c]
cmp edi, ebx
ja 0x4a452d
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 0x4a44e7
mov ebp, ebx
mov ebx, dword [esp + 0x2ec]
cmp edx, ebx
je 0x4a4514
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 + 0x5c]
mov ebp, dword [esp + 0x2d4]
mov esi, dword [ebp + 0xc]
lea edx, [edi + esi]
mov ebx, dword [esp + 0x2e0]
jmp 0x4a33ef
mov eax, edi
mov ecx, ebx
call fcn.00452c20
inc ebx
mov ebp, dword [esp + 0x68]
mov edi, dword [esp + 0x2ec]
mov ebp, dword [esp + 0x12c]
mov dword [esp + 0xb0], ebx
mov ebx, dword [esp + 0x308]
mov ebx, dword [esp + 0xb0]
mov edi, dword [esp + 0x68]
cmp ebx, edi
jge 0x4a4599
mov edi, dword [esi + 0x28]
mov esi, dword [esi + 0x24]
cmp ebx, ebp
jae 0x4a45b5
mov ebp, dword [esp + 0x2ec]
movzx ebp, byte [ebx + ebp]
cmp esi, ebp
jg 0x4a4590
inc ebp
cmp edi, ebp
jb 0x4a45ac
mov esi, dword [esp + 0x2d4]
mov dword [esi + 0x24], ebp
jmp 0x4a4536
mov esi, dword [esp + 0x2d4]
jmp 0x4a4536
mov ebx, dword [esp + 0x308]
mov edi, dword [esp + 0x2ec]
jmp 0x4a44c0
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 + 0x68]
mov edi, dword [esp + 0x2d4]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0x308]
mov ebx, dword [esp + 0xb4]
cmp ebx, esi
jge 0x4a462f
shr ebx, 0x1f
mov esi, dword [esp + 0xb4]
add ebx, esi
sar ebx, 1
cmp ebx, ebp
jae 0x4a4774
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x23c], eax
xor eax, eax
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x23c]
jmp 0x4a466d
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0xb4]
jmp 0x4a45be
mov ebx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x5c]
jmp 0x4a33ef
mov ebx, dword [esp + 0xe8]
inc ebx
movzx ebp, byte [esp + 0x35]
shl ebp, 4
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xe8], ebx
mov ebx, ebp
mov ebp, dword [esp + 0x12c]
mov edi, dword [esp + 0xe8]
cmp edi, 2
jge 0x4a45be
lea ebp, [edi + esi]
mov esi, dword [esp + 0x68]
cmp esi, ebp
jle 0x4a461f
mov byte [esp + 0x35], bl
shr bl, 4
mov byte [esp + 0x2b], bl
mov esi, dword [esp + 0x2d4]
mov edi, dword [esi + 0x28]
movzx ebx, bl
cmp dword [esi + 0x24], ebx
jg 0x4a46b1
inc ebx
cmp edi, ebx
jb 0x4a476b
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 0x4a4756
cmp edi, ebp
jle 0x4a474a
mov dword [esp + 0x124], ebx
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x128]
cmp edi, ebx
jl 0x4a463f
cmp edi, esi
jge 0x4a463f
mov dword [esp + 0x128], ebp
nop
mov esi, dword [esp + 0x2d4]
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 0x4a4762
movzx esi, byte [esp + 0x2b]
xchg esi, eax
mov byte [ebp + ebx], al
xchg esi, eax
mov edi, dword [esp + 0x84]
jmp 0x4a463f
mov edi, dword [esp + 0x84]
jmp 0x4a463f
mov edi, dword [esp + 0x84]
jmp 0x4a463f
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 + 0x68]
mov edi, dword [esp + 0x2d4]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xb8], ebx
mov ebx, dword [esp + 0x308]
mov ebx, dword [esp + 0xb8]
cmp ebx, esi
jge 0x4a47f2
sar ebx, 0x1f
shr ebx, 0x1e
mov esi, dword [esp + 0xb8]
add ebx, esi
sar ebx, 2
cmp ebx, ebp
jae 0x4a4937
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x22c], eax
xor eax, eax
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x22c]
jmp 0x4a4830
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0xb8]
jmp 0x4a477d
mov ebx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x5c]
jmp 0x4a33ef
mov ebx, dword [esp + 0xec]
inc ebx
movzx ebp, byte [esp + 0x36]
shl ebp, 2
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xec], ebx
mov ebx, ebp
mov ebp, dword [esp + 0x12c]
mov edi, dword [esp + 0xec]
cmp edi, 4
jge 0x4a477d
lea ebp, [edi + esi]
mov esi, dword [esp + 0x68]
cmp esi, ebp
jle 0x4a47e2
mov byte [esp + 0x36], bl
shr bl, 6
mov byte [esp + 0x2c], bl
mov esi, dword [esp + 0x2d4]
mov edi, dword [esi + 0x28]
movzx ebx, bl
cmp dword [esi + 0x24], ebx
jg 0x4a4874
inc ebx
cmp edi, ebx
jb 0x4a492e
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 0x4a4919
cmp edi, ebp
jle 0x4a490d
mov dword [esp + 0x124], ebx
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x128]
cmp edi, ebx
jl 0x4a4802
cmp edi, esi
jge 0x4a4802
mov dword [esp + 0x128], ebp
nop
mov esi, dword [esp + 0x2d4]
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 0x4a4925
movzx esi, byte [esp + 0x2c]
xchg esi, eax
mov byte [ebp + ebx], al
xchg esi, eax
mov edi, dword [esp + 0x84]
jmp 0x4a4802
mov edi, dword [esp + 0x84]
jmp 0x4a4802
mov edi, dword [esp + 0x84]
jmp 0x4a4802
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 + 0x68]
mov edi, dword [esp + 0x2d4]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xbc], ebx
mov ebx, dword [esp + 0x308]
mov ebx, dword [esp + 0xbc]
cmp ebx, esi
jge 0x4a49b5
sar ebx, 0x1f
shr ebx, 0x1d
mov esi, dword [esp + 0xbc]
add ebx, esi
sar ebx, 3
cmp ebx, ebp
jae 0x4a4af9
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x21c], eax
xor eax, eax
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x21c]
jmp 0x4a49f2
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0xbc]
jmp 0x4a4940
mov ebx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x5c]
jmp 0x4a33ef
mov ebx, dword [esp + 0xf0]
inc ebx
movzx ebp, byte [esp + 0x37]
shl ebp, 1
mov esi, dword [esp + 0xbc]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xf0], ebx
mov ebx, ebp
mov ebp, dword [esp + 0x12c]
mov edi, dword [esp + 0xf0]
cmp edi, 8
jge 0x4a4940
lea ebp, [edi + esi]
mov esi, dword [esp + 0x68]
cmp esi, ebp
jle 0x4a49a5
mov byte [esp + 0x37], bl
shr bl, 7
mov byte [esp + 0x2d], bl
mov esi, dword [esp + 0x2d4]
mov edi, dword [esi + 0x28]
movzx ebx, bl
cmp dword [esi + 0x24], ebx
jg 0x4a4a36
inc ebx
cmp edi, ebx
jb 0x4a4af0
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 0x4a4adb
cmp edi, ebp
jle 0x4a4acf
mov dword [esp + 0x124], ebx
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x128]
cmp edi, ebx
jl 0x4a49c5
cmp edi, esi
jge 0x4a49c5
mov dword [esp + 0x128], ebp
nop
mov esi, dword [esp + 0x2d4]
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 0x4a4ae7
movzx esi, byte [esp + 0x2d]
xchg esi, eax
mov byte [ebp + ebx], al
xchg esi, eax
mov edi, dword [esp + 0x84]
jmp 0x4a49c5
mov edi, dword [esp + 0x84]
jmp 0x4a49c5
mov edi, dword [esp + 0x84]
jmp 0x4a49c5
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 + 0xc0]
inc ebx
add edi, 4
add edx, 3
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x2d8]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x2bc]
mov ebx, dword [esp + 0x90]
mov edi, dword [esp + 0x2ec]
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0x68]
cmp edx, esi
jge 0x4a4be8
mov esi, dword [esp + 0x60]
cmp esi, ebp
jae 0x4a4c3c
movzx edx, byte [esi + edi]
mov edi, dword [esp + 0x6c]
cmp edi, ebx
jae 0x4a4c33
mov ebx, dword [esp + 0x2d8]
mov byte [ebx + edi], dl
lea edx, [esi + 1]
cmp edx, ebp
jae 0x4a4c2a
lea edx, [edi + 1]
mov ebp, dword [esp + 0x2ec]
movzx ebp, byte [esi + ebp + 1]
mov esi, dword [esp + 0x90]
cmp esi, edx
jbe 0x4a4c21
xchg ebp, eax
mov byte [edi + ebx + 1], al
xchg ebp, eax
mov edx, dword [esp + 0x60]
lea ebp, [edx + 2]
mov ebx, dword [esp + 0x12c]
cmp ebp, ebx
jae 0x4a4c18
lea ebp, [edi + 2]
mov ebx, dword [esp + 0x2ec]
movzx ebx, byte [edx + ebx + 2]
cmp esi, ebp
jbe 0x4a4c0f
mov ebp, dword [esp + 0x2d8]
mov byte [edi + ebp + 2], bl
lea ebx, [edi + 3]
cmp esi, ebx
ja 0x4a4b02
jmp 0x4a4c06
mov edx, dword [esp + 0x2cc]
mov ebx, dword [edx + 0xc]
mov ebp, dword [esp + 0x5c]
add ebx, ebp
mov edx, ebx
mov ebx, dword [esp + 0x2e0]
jmp 0x4a33ef
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 + 0x34]
mov byte [ebp + esi + 3], dl
mov edx, dword [esp + 0xc4]
inc edx
add ebp, 4
mov edi, dword [esp + 0x64]
add edi, 3
movzx ebx, byte [esp + 0x32]
movzx esi, byte [esp + 0x29]
mov dword [esp + 0xc4], edx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x64], edi
mov edx, dword [esp + 0x2bc]
mov ebp, dword [esp + 0x12c]
movzx edi, byte [esp + 0x33]
mov edx, dword [esp + 0xc4]
mov ebx, dword [esp + 0x68]
cmp edx, ebx
jge 0x4a4d8d
mov ebx, dword [esp + 0x64]
cmp ebx, ebp
jae 0x4a4de3
mov edx, dword [esp + 0x2ec]
movzx edi, byte [ebx + edx]
lea esi, [ebx + 1]
cmp esi, ebp
jae 0x4a4dda
movzx esi, byte [ebx + edx + 1]
xchg esi, eax
mov byte [esp + 0x2a], al
xchg esi, eax
lea esi, [ebx + 2]
cmp esi, ebp
jae 0x4a4dd1
movzx esi, byte [ebx + edx + 2]
movzx edx, byte [esp + 0x29]
xchg edi, eax
cmp al, dl
xchg edi, eax
jne 0x4a4d23
movzx edx, byte [esp + 0x2a]
movzx ebp, byte [esp + 0x33]
xchg ebp, eax
cmp dl, al
xchg ebp, eax
jne 0x4a4d1c
movzx ebp, byte [esp + 0x32]
xchg esi, eax
xchg ebp, ebx
cmp al, bl
xchg ebp, ebx
xchg esi, eax
jne 0x4a4d2d
mov dword [esp + 0x1ec], eax
xor eax, eax
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x1ec]
jmp 0x4a4d44
movzx ebp, byte [esp + 0x32]
jmp 0x4a4d2d
movzx edx, byte [esp + 0x2a]
movzx ebp, byte [esp + 0x32]
mov dword [esp + 0x1f4], eax
mov eax, 0xffffffff
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x1f4]
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x94]
cmp ebp, ebx
jae 0x4a4dc8
xchg esi, eax
mov byte [esp + 0x38], al
xchg esi, eax
mov esi, dword [esp + 0x2dc]
xchg edi, eax
mov byte [esi + ebp], al
xchg edi, eax
lea edi, [ebp + 1]
cmp ebx, edi
jbe 0x4a4dbf
mov byte [ebp + esi + 1], dl
lea edx, [ebp + 2]
cmp ebx, edx
jbe 0x4a4db6
movzx edx, byte [esp + 0x38]
mov byte [ebp + esi + 2], dl
lea edx, [ebp + 3]
cmp ebx, edx
ja 0x4a4c45
jmp 0x4a4dad
mov ebp, dword [esp + 0x2e0]
mov edi, dword [ebp + 0xc]
mov ebp, dword [esp + 0x5c]
add ebp, edi
mov edx, dword [esp + 0x2cc]
mov esi, ebx
mov ebx, ebp
jmp 0x4a4bf8
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 + 0x2e0]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x84]
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.00493750
mov eax, dword [esp + 0xc8]
inc eax
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x2e0]
mov ebx, dword [esp + 0x12c]
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x2ec]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2bc]
mov ebx, dword [esp + 0x308]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0xc8]
cmp ebx, esi
jge 0x4a4ead
shl ebx, 1
cmp ebx, ebp
jae 0x4a4ec6
mov edx, dword [esp + 0xc8]
lea esi, [edi + edx*2]
movzx esi, byte [esi]
inc ebx
cmp ebx, ebp
jb 0x4a4dec
jmp 0x4a4ebd
mov ebx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x5c]
jmp 0x4a33ef
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov ebx, dword [esp + 0x2e0]
jmp 0x4a33ef
mov eax, edi
mov ecx, ebx
call fcn.00452c20
mov ecx, dword [esp + 0x2e0]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov edx, dword [esp + 0x84]
mov dword [esp + 8], edx
mov byte [esp + 0xc], al
mov byte [esp + 0xd], al
mov byte [esp + 0xe], al
movzx eax, byte [esp + 0x25]
mov byte [esp + 0xf], al
call fcn.00493750
mov eax, dword [esp + 0xcc]
inc eax
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x2e0]
movzx ebx, byte [esp + 0x2e]
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x2ec]
mov edi, dword [esp + 0x12c]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2bc]
mov ebx, dword [esp + 0x308]
mov ebp, edi
movzx esi, byte [esp + 0x2e]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0xcc]
mov edx, dword [esp + 0x68]
cmp ebx, edx
jge 0x4a4fcb
cmp ebx, ebp
jae 0x4a4fdb
movzx eax, byte [ebx + edi]
xchg esi, ebx
cmp al, bl
xchg esi, ebx
jne 0x4a4fae
mov byte [esp + 0x1cc], al
xor eax, eax
mov byte [esp + 0x25], al
movzx eax, byte [esp + 0x1cc]
jmp 0x4a4ee4
mov byte [esp + 0x1d4], al
mov eax, 0xffffffff
mov byte [esp + 0x25], al
movzx eax, byte [esp + 0x1d4]
jmp 0x4a4ee4
mov ebx, dword [esp + 0x300]
mov edx, dword [esp + 0x5c]
jmp 0x4a4ecf
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
add edx, 2
mov ebx, dword [esp + 0x300]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x308]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0x2bc]
mov ebx, dword [esp + 0xd0]
cmp ebx, esi
jge 0x4a5058
shr ebx, 0x1f
mov edx, dword [esp + 0xd0]
add ebx, edx
sar ebx, 1
cmp ebx, ebp
jae 0x4a5168
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x1bc], eax
xor eax, eax
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x1bc]
jmp 0x4a50a1
mov ebp, dword [esp + 0x12c]
jmp 0x4a4fe4
mov ebx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x5c]
jmp 0x4a33ef
mov edx, dword [esp + 0xf4]
inc edx
movzx ebx, byte [esp + 0x39]
shl ebx, 4
mov ebp, dword [esp + 0xd0]
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x12c]
mov esi, edi
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0xd0]
mov edi, dword [esp + 0xf4]
cmp edi, 2
jge 0x4a4fe4
lea ebp, [edi + edx]
cmp esi, ebp
jle 0x4a504f
mov byte [esp + 0x39], bl
shr bl, 4
mov byte [esp + 0x3f], bl
shl ebx, 4
movzx esi, byte [esp + 0x3f]
add ebx, esi
mov byte [esp + 0x24], 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 0x4a514c
cmp edi, ebp
jle 0x4a5143
mov edi, dword [esp + 0x84]
cmp edi, edx
jl 0x4a5153
cmp edi, esi
jge 0x4a5153
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 0x4a515f
movzx ebp, byte [esp + 0x24]
xchg ebp, eax
mov byte [ebx + edx], al
xchg ebp, eax
jmp 0x4a5068
mov edi, dword [esp + 0x84]
jmp 0x4a5153
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x300]
jmp 0x4a5068
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 + 0x2e0]
movzx edi, byte [esp + 0x2f]
mov edx, dword [esp + 0x2bc]
mov esi, edi
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xd4], ebx
mov ebx, dword [esp + 0x308]
mov ebx, dword [esp + 0xd4]
mov edx, dword [esp + 0x68]
cmp ebx, edx
jge 0x4a51e3
shr ebx, 0x1f
mov esi, dword [esp + 0xd4]
add ebx, esi
sar ebx, 1
cmp ebx, ebp
jae 0x4a52ed
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x1ac], eax
xor eax, eax
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x1ac]
jmp 0x4a527e
mov edx, dword [esp + 0x2bc]
mov esi, dword [esp + 0x68]
jmp 0x4a5058
mov ecx, dword [esp + 0x2e0]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov edx, dword [esp + 0x84]
mov dword [esp + 8], edx
mov byte [esp + 0xc], al
mov byte [esp + 0xd], al
mov byte [esp + 0xe], al
movzx eax, byte [esp + 0x26]
mov byte [esp + 0xf], al
call fcn.00493750
mov eax, dword [esp + 0xf8]
inc eax
movzx ebx, byte [esp + 0x3a]
shl ebx, 4
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0x68]
mov ebp, dword [esp + 0x2e0]
movzx esi, byte [esp + 0x2f]
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x2f8]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0xd4]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x130]
mov edi, dword [esp + 0xf8]
cmp edi, 2
jge 0x4a5171
add edi, esi
cmp edx, edi
jle 0x4a5171
mov byte [esp + 0x3a], bl
shr bl, 4
mov byte [esp + 0x3f], bl
shl ebx, 4
movzx eax, byte [esp + 0x3f]
add eax, ebx
movzx ebx, byte [esp + 0x2f]
cmp bl, al
jne 0x4a52d0
mov byte [esp + 0x19c], al
xor eax, eax
mov byte [esp + 0x26], al
movzx eax, byte [esp + 0x19c]
jmp 0x4a51f3
mov byte [esp + 0x1a4], al
mov eax, 0xffffffff
mov byte [esp + 0x26], al
movzx eax, byte [esp + 0x1a4]
jmp 0x4a51f3
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
add edx, 4
mov ebx, dword [esp + 0x300]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x308]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x2bc]
mov ebx, dword [esp + 0xd8]
cmp ebx, esi
jge 0x4a536e
sar ebx, 0x1f
shr ebx, 0x1e
mov edx, dword [esp + 0xd8]
add ebx, edx
sar ebx, 2
cmp ebx, ebp
jae 0x4a5477
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x18c], eax
xor eax, eax
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x18c]
jmp 0x4a53b6
mov ebp, dword [esp + 0x12c]
jmp 0x4a52f6
mov ebx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x5c]
jmp 0x4a33ef
mov edx, dword [esp + 0xfc]
inc edx
shl edi, 2
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x68]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x68]
mov dword [esp + 0xfc], edx
mov ebx, edi
mov edx, dword [esp + 0xd8]
mov edi, dword [esp + 0x2ec]
mov edi, dword [esp + 0xfc]
cmp edi, 4
jge 0x4a52f6
lea ebp, [edi + edx]
cmp esi, ebp
jle 0x4a5365
mov byte [esp + 0x3b], 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 0x4a5456
cmp edi, ebp
jle 0x4a544d
mov edi, dword [esp + 0x84]
cmp edi, ebx
jl 0x4a545d
cmp edi, esi
jge 0x4a545d
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 0x4a546e
movzx ebp, byte [esp + 0x3b]
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 0x4a537e
mov edi, dword [esp + 0x84]
jmp 0x4a545d
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x300]
movzx edi, byte [esp + 0x3b]
jmp 0x4a537e
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 + 0x2e0]
movzx edi, byte [esp + 0x30]
mov edx, dword [esp + 0x2bc]
mov esi, edi
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xdc], ebx
mov ebx, dword [esp + 0x308]
mov ebx, dword [esp + 0xdc]
mov edx, dword [esp + 0x68]
cmp ebx, edx
jge 0x4a54f6
sar ebx, 0x1f
shr ebx, 0x1e
mov esi, dword [esp + 0xdc]
add ebx, esi
sar ebx, 2
cmp ebx, ebp
jae 0x4a55e5
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x17c], eax
xor eax, eax
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x17c]
jmp 0x4a5591
mov edx, dword [esp + 0x2bc]
mov esi, dword [esp + 0x68]
jmp 0x4a536e
mov eax, dword [esp + 0x2e0]
mov dword [esp], eax
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x84]
mov dword [esp + 8], ecx
mov byte [esp + 0xc], bl
mov byte [esp + 0xd], bl
mov byte [esp + 0xe], bl
movzx edx, byte [esp + 0x27]
mov byte [esp + 0xf], dl
call fcn.00493750
mov eax, dword [esp + 0x100]
inc eax
movzx ebx, byte [esp + 0x3c]
shl ebx, 2
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0x68]
mov ebp, dword [esp + 0x2e0]
movzx esi, byte [esp + 0x30]
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x2f8]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x130]
mov edi, dword [esp + 0x100]
cmp edi, 4
jge 0x4a5480
add edi, esi
cmp edx, edi
jle 0x4a5480
mov byte [esp + 0x3c], bl
shr bl, 6
imul ebx, ebx, 0x55
movzx eax, byte [esp + 0x30]
cmp al, bl
jne 0x4a55d0
mov byte [esp + 0x16c], al
xor eax, eax
mov byte [esp + 0x27], al
jmp 0x4a5506
mov byte [esp + 0x174], al
mov eax, 0xffffffff
mov byte [esp + 0x27], al
jmp 0x4a5506
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
add edx, 8
mov ebx, dword [esp + 0x300]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x308]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xe0], edx
mov edx, dword [esp + 0x2bc]
mov ebx, dword [esp + 0xe0]
cmp ebx, esi
jge 0x4a5666
sar ebx, 0x1f
shr ebx, 0x1d
mov edx, dword [esp + 0xe0]
add ebx, edx
sar ebx, 3
cmp ebx, ebp
jae 0x4a5771
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x15c], eax
xor eax, eax
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x15c]
jmp 0x4a56ad
mov ebp, dword [esp + 0x12c]
jmp 0x4a55ee
mov ebx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x5c]
jmp 0x4a33ef
mov edx, dword [esp + 0x104]
inc edx
shl edi, 1
mov ebx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x68]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x104], edx
mov ebx, edi
mov edx, dword [esp + 0xe0]
mov edi, dword [esp + 0x2ec]
mov edi, dword [esp + 0x104]
cmp edi, 8
jge 0x4a55ee
lea ebp, [edi + edx]
cmp esi, ebp
jle 0x4a565d
mov byte [esp + 0x3d], 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 0x4a5750
cmp edi, ebp
jle 0x4a5747
mov edi, dword [esp + 0x84]
cmp edi, ebx
jl 0x4a5757
cmp edi, esi
jge 0x4a5757
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 0x4a5768
movzx ebp, byte [esp + 0x3d]
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 0x4a5676
mov edi, dword [esp + 0x84]
jmp 0x4a5757
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x300]
movzx edi, byte [esp + 0x3d]
jmp 0x4a5676
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 + 0x2e0]
movzx edi, byte [esp + 0x31]
mov edx, dword [esp + 0x2bc]
mov esi, edi
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0xe4], ebx
mov ebx, dword [esp + 0x308]
mov ebx, dword [esp + 0xe4]
mov edx, dword [esp + 0x68]
cmp ebx, edx
jge 0x4a57f0
sar ebx, 0x1f
shr ebx, 0x1d
mov esi, dword [esp + 0xe4]
add ebx, esi
sar ebx, 3
cmp ebx, ebp
jae 0x4a58dd
movzx ebx, byte [ebx + edi]
mov dword [esp + 0x14c], eax
xor eax, eax
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x14c]
jmp 0x4a588a
mov edx, dword [esp + 0x2bc]
mov esi, dword [esp + 0x68]
jmp 0x4a5666
mov eax, dword [esp + 0x2e0]
mov dword [esp], eax
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x84]
mov dword [esp + 8], ecx
mov byte [esp + 0xc], bl
mov byte [esp + 0xd], bl
mov byte [esp + 0xe], bl
movzx edx, byte [esp + 0x28]
mov byte [esp + 0xf], dl
call fcn.00493750
mov eax, dword [esp + 0x108]
inc eax
movzx ebx, byte [esp + 0x3e]
shl ebx, 1
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0x68]
mov ebp, dword [esp + 0x2e0]
movzx esi, byte [esp + 0x31]
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x2f8]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0xe4]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x130]
mov edi, dword [esp + 0x108]
cmp edi, 8
jge 0x4a577a
add edi, esi
cmp edx, edi
jle 0x4a577a
mov byte [esp + 0x3e], bl
shr bl, 7
neg ebx
movzx eax, byte [esp + 0x31]
cmp al, bl
jne 0x4a58c8
mov byte [esp + 0x13c], al
xor eax, eax
mov byte [esp + 0x28], al
jmp 0x4a5800
mov byte [esp + 0x144], al
mov eax, 0xffffffff
mov byte [esp + 0x28], al
jmp 0x4a5800
mov eax, ebx
mov ecx, ebp
call fcn.00452bc0
mov eax, dword [esp + 0x2f0]
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 + 0x2f0]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x2f8]
mov ebx, dword [esp + 0x78]
cmp ebx, esi
jge 0x4a5936
cmp ebx, ebp
jae 0x4a59d6
movzx ebp, byte [ebx + edi]
jb 0x4a58e6
jmp 0x4a59c8
mov ebx, dword [esp + 0x2f0]
jmp 0x4a597e
mov eax, dword [esp + 0x2f0]
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 + 0x88]
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x2f8]
mov ebx, dword [esp + 0x2f0]
cmp esi, ebp
jge 0x4a357d
jae 0x4a59bf
mov dword [esp + 0x74], esi
movzx ebx, byte [esi + edi]
mov byte [esp + 0x3f], bl
mov ebx, dword [esp + 0x88]
sub esi, ebx
cmp esi, ebp
jae 0x4a59b6
movzx esi, byte [esi + edi]
mov ebx, dword [esp + 0x74]
cmp ebx, ebp
jb 0x4a593f
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 + 0x2f0]
mov eax, dword [esp + 0x130]
cmp esi, ebp
jge 0x4a357d
movzx ebx, byte [esi + ebx]
jb 0x4a59df
mov eax, esi
mov ecx, ebp
call fcn.00452bc0
mov eax, dword [esp + 0x2ec]
movzx ebx, byte [ebx + eax]
add ebx, edi
mov edi, dword [esp + 0x7c]
mov byte [eax + edi], bl
lea ebx, [edi + 1]
mov eax, dword [esp + 0x130]
mov edi, dword [esp + 0x2ec]
cmp ebx, ebp
jge 0x4a357d
jae 0x4a5a54
mov dword [esp + 0x7c], ebx
movzx edi, byte [ebx + edi]
sub ebx, esi
cmp ebx, ebp
jb 0x4a5a0e
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.004a2870