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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x258
push esi
push edi
mov esi, edx
mov dword [esp + 0x50], ecx
xor eax, eax
mov dword [esp + 0x28], 0x37d02268
push 3
mov dword [esp + 0x44], esi
mov dword [esp + 0x18], eax
pop edx
jmp 0x4a2c18
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0xc0], 0xeb90
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x4a2c05
mov dword [esp + 0x14], eax
jmp 0x4a2c37
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x8c], 0xcb13638e
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x4a2c24
push 2
mov dword [esp + 0x90], eax
pop edi
jmp 0x4a2d24
mov dword [esp + 0x20], 0xfffffffe
mov dword [esp + 0x20], eax
jmp 0x4a2c74
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a2c70
push eax
push eax
call dword [0xad408c]
xor eax, eax
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jle 0x4a2c5b
mov ecx, dword [esp + 0x20]
xor edx, edx
mov ecx, dword [esp + 0x8c]
push 0
mov ecx, dword [esp + ecx*4 + 0xc4]
mov ecx, dword [esp + 0x90]
mov ecx, dword [esp + ecx*4 + 0xc4]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x90]
mov ecx, dword [esp + ecx*4 + 0xc4]
test ecx, ecx
mov ecx, dword [esp + 0x90]
setg dl
mov dword [esp + 0x2c], edx
xor edx, edx
mov ecx, dword [esp + ecx*4 + 0xc4]
cmp ecx, dword [esp + 0x2c]
setl dl
xor ecx, ecx
cmp edx, 0xa205
mov edx, dword [esp + 0xcc]
setle cl
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x24]
cmp edx, ecx
pop ecx
setl cl
xor edx, edx
cmp ecx, 0xfffffffe
mov ecx, dword [esp + 0x8c]
setle dl
mov dword [esp + 0x28], edx
xor edx, edx
mov ecx, dword [esp + ecx*4 + 0xc0]
cmp dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x2c]
setne dl
sub ecx, edx
mov dword [esp + 0x28], ecx
inc dword [esp + 0x8c]
cmp dword [esp + 0x8c], edi
jle 0x4a2c4d
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a2d4b
push 0x250b
push eax
push eax
call dword [0xad400c]
xor eax, eax
mov ecx, dword [0xad2e00]
xor edi, edi
inc edi
test cl, 1
jne 0x4a2dd8
push eax
or ecx, edi
mov dword [0xad2e10], eax
push eax
mov dword [0xad2e00], ecx
mov dword [0xad2e14], eax
call fcn.00403f2c
mov dword [0xad2e10], eax
xor ecx, ecx
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x11c]
push eax
push 0x10
push ecx
lea eax, [esp + 0x1b8]
mov dword [0xad2e18], ecx
mov dword [0xad2e20], ecx
mov dword [0xad2e1c], ecx
mov ecx, 0xad2e18
push eax
mov dword [0xad2e2c], 0x3f800000
call fcn.00403c62
push 0x4d6152
mov dword [0xad2e24], 7
mov dword [0xad2e28], 8
call fcn.004bff7f
pop ecx
xor eax, eax
mov dword [esp + 0x20], 0xb7c7ce53
mov dword [esp + 0x10], eax
jmp 0x4a2df4
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x68], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x4a2de8
mov dword [esp + 0x20], eax
cmp dword [esp + 0x20], eax
jl 0x4a2e4e
mov dword [esp + 0x24], 0xf5a9c4c8
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + ecx*4 + 0x68]
mov ecx, dword [esp + 0x20]
mov dword [esp + ecx*4 + 0x68], edx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], eax
jl 0x4a2e48
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a2e42
push eax
push 0x2699
push eax
push eax
push eax
call dword [0xad40cc]
xor eax, eax
dec dword [esp + 0x24]
jns 0x4a2e26
dec dword [esp + 0x20]
jns 0x4a2e04
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x20], ecx
imul ecx, dword [esp + 0x50], 0x2710
push 3
add ecx, esi
mov dword [esp + 0x88], ecx
mov ecx, 0xfffc
mov dword [esp + 0x18], 0xfff9
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x20], 0x30f5872d
inc dword [esp + 0x18]
mov dword [esp + 0x18], eax
pop esi
jmp 0x4a2f57
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], 4
cmp dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
cmp dword [esp + ecx*4 + 0x13c], eax
jne 0x4a2ec9
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
xor edx, edx
mov esi, dword [esp + ecx*4 + 0x13c]
mov ecx, dword [esp + 0x1c]
neg ecx
cmp ecx, 0x623b
setg dl
imul esi, edx
imul ecx, esi, 5
mov dword [esp + 0x28], ecx
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a2f19
push eax
push 0x1c30
push 0x1b7
push eax
push 0x2495
push 0xa17
push eax
call dword [0xad40a0]
xor eax, eax
push 3
pop esi
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x1c], eax
jl 0x4a2f53
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a2f39
call dword [0xad40c0]
xor eax, eax
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a2f4d
push eax
call dword [0xad41a8]
xor eax, eax
dec dword [esp + 0x1c]
jns 0x4a2f26
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jle 0x4a2ea8
lea eax, [esp + 0x84]
push eax
call fcn.004a4dc7
xor esi, esi
mov edi, dword [eax]
mov eax, 0x3b26bdde
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xe0], 0x17
cmp dword [esp + 0xe0], 0xfffffff9
jge 0x4a3011
xor eax, eax
inc esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], eax
jmp 0x4a2fc8
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x220], 0xd5816210
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x4a2fb5
mov dword [esp + 0x24], esi
cmp dword [esp + 0x24], eax
jl 0x4a2ffe
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a2ff8
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
call dword [0xad4008]
xor eax, eax
dec dword [esp + 0x24]
jns 0x4a2fd9
dec dword [esp + 0xe0]
cmp dword [esp + 0xe0], 0xfffffff9
jl 0x4a2fab
jmp 0x4a3012
inc esi
xor eax, eax
test edi, edi
je 0x4a3225
mov dword [esp + 0x20], 0x1897a4a
mov dword [esp + 0x1c], 0xa733e34b
mov dword [esp + 0x2c], 0xe74a6e8f
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], eax
jmp 0x4a3051
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x118], 0x2799
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x4a303e
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x4a306c
push eax
push eax
push eax
call dword [0xad4020]
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x4a3122
mov dword [esp + 0x24], 0xfffffffd
mov dword [esp + 0x28], esi
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
cmp edx, ecx
push 0
pop ecx
setge cl
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x24]
imul ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4a30bb
mov ecx, dword [esp + 0x24]
imul ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4a30b3
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov ecx, esi
jmp 0x4a30bd
mov ecx, eax
add ecx, 0x1d30ba9c
neg ecx
push 0
sbb ecx, ecx
inc ecx
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x30]
cmp ecx, edx
mov ecx, dword [esp + 0x28]
pop edx
setg dl
sub edx, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
xor edx, edx
cmp dword [esp + 0x2c], ecx
setne dl
xor ecx, ecx
cmp edx, 0xbfe
setl cl
mov dword [esp + 0x28], ecx
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a311b
push eax
push eax
push eax
call dword [0xad4200]
xor eax, eax
inc dword [esp + 0x20]
push 1
pop esi
cmp dword [esp + 0x20], eax
jle 0x4a3075
mov esi, dword [ebp + 8]
mov dword [esp + 0x1c], 0xf1124f01
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], 0xffffffe6
mov dword [esi], edi
jle 0x4a320c
push 3
pop edi
mov dword [esp + 0x10], 0x3fa75c19
mov dword [esp + 0x2c], 0xfffffffe
mov dword [esp + 0x10], eax
jmp 0x4a31ed
mov dword [esp + 0x14], eax
jmp 0x4a317d
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x120], 0xea41
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x4a316a
mov dword [esp + 0x14], eax
jmp 0x4a319a
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x44], 5
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x4a318a
cmp dword [esp + 0x1c], eax
jne 0x4a31f7
mov dword [esp + 0x44], eax
jmp 0x4a31e3
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a31d0
push eax
push 0x1376
push 0x163c
push 0x1a6d
call dword [0xad40f0]
xor eax, eax
mov ecx, dword [esp + 0x44]
mov ecx, dword [esp + ecx*4 + 0x120]
mov dword [esp + 0x2c], ecx
inc dword [esp + 0x44]
cmp dword [esp + 0x44], eax
jle 0x4a31ad
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
je 0x4a3164
cmp dword [esp + 0x2c], eax
jne 0x4a320c
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xffffffe6
jg 0x4a314b
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a321e
push eax
call dword [0xad40dc]
mov eax, esi
jmp 0x4a4d05
push 3
mov dword [esp + 0x28], 0x62ee6d05
mov dword [esp + 0x18], eax
pop edi
jmp 0x4a3245
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x1f0], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x4a3236
mov dword [esp + 0x14], eax
jmp 0x4a3261
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x7c], 0xf5020f89
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x4a3251
mov dword [esp + 0x80], 2
cmp dword [esp + 0x80], eax
jl 0x4a32a1
mov dword [esp + 0x2c], 0xfffffff9
inc dword [esp + 0x2c]
mov ecx, dword [esp + 0x80]
cmp dword [esp + ecx*4 + 0x1f0], eax
jne 0x4a32a1
dec dword [esp + 0x80]
jns 0x4a327c
dec dword [esp + 0x24]
mov ecx, dword [0xad2e00]
test cl, 2
jne 0x4a3336
push eax
or ecx, 2
mov dword [0xad2de0], eax
push eax
mov dword [0xad2e00], ecx
mov dword [0xad2de4], eax
call fcn.00403f2c
mov dword [0xad2de0], eax
xor ecx, ecx
mov dword [esp + 0x124], eax
lea eax, [esp + 0x124]
push eax
push 0x10
push ecx
lea eax, [esp + 0x1d8]
mov dword [0xad2de8], ecx
mov dword [0xad2df0], ecx
mov dword [0xad2dec], ecx
mov ecx, 0xad2de8
push eax
mov dword [0xad2dfc], 0x3f800000
call fcn.00403c62
push 0x4d614d
mov dword [0xad2df4], 7
mov dword [0xad2df8], 8
call fcn.004bff7f
pop ecx
xor eax, eax
xorps xmm0, xmm0
mov ecx, 0x76ac116e
movdqu xmmword [esp + 0xcc], xmm0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], 0xfffffffb
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x20], 0xf537
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x14], 0xffffffec
jmp 0x4a348d
mov dword [esp + 0x20], 0x46df37d4
mov dword [esp + 0x10], eax
jmp 0x4a33b1
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x168], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x4a33a2
mov dword [esp + 0x20], eax
jmp 0x4a3433
mov dword [esp + 0x10], eax
jmp 0x4a33d0
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x4c], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x4a33c4
mov dword [esp + 0x4c], eax
jmp 0x4a3429
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a3425
push 0x1ec5
push 0x4c6
push 0xb44
push 0x21d
push 0x22b8
push 0x1e56
push 0x2632
push 0x1ec
call dword [0xad4314]
push eax
call dword [0xad4304]
push eax
call dword [0xad4038]
xor eax, eax
inc dword [esp + 0x4c]
cmp dword [esp + 0x4c], esi
jle 0x4a33dc
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jle 0x4a33be
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x1c], eax
je 0x4a3470
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x16c], eax
jne 0x4a347d
cmp dword [esp + 0x16c], eax
jne 0x4a347d
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], 0xfffffff6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x16
jg 0x4a3394
mov dword [esp + 0x18], edi
cmp dword [esp + 0x18], eax
jl 0x4a3660
mov dword [esp + 0x14], esi
mov dword [esp + 0x24], 0xfffffff6
mov dword [esp + 0x2c], 0xc4d5916f
mov dword [esp + 0x20], eax
cmp dword [esp + 0xb8], eax
je 0x4a34cb
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp edx, ecx
push 0
pop ecx
setge cl
xor edx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x28], ecx
setne dl
add edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x18]
jg 0x4a350b
cmp dword [esp + 0x14], eax
jne 0x4a350b
xor esi, esi
mov ecx, eax
inc esi
jmp 0x4a3510
xor esi, esi
inc esi
mov ecx, esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
jmp 0x4a364c
mov dword [esp + 0x28], 0xda4f1dfb
mov dword [esp + 0x10], eax
jmp 0x4a353a
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x88], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x4a352b
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], edi
jg 0x4a3612
mov ecx, dword [esp + 0x20]
push 0
mov edx, dword [esp + ecx*4 + 0xb4]
mov ecx, dword [esp + 0x28]
cmp ecx, edx
mov ecx, dword [esp + 0x24]
pop edx
setle dl
sub edx, dword [esp + ecx*4 + 0xb0]
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x2c], edx
xor edx, edx
cmp dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
setge dl
mov dword [esp + 0x2c], edx
xor edx, edx
cmp ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
setne dl
mov dword [esp + 0x2c], edx
xor edx, edx
cmp dword [esp + 0x2c], ecx
setge dl
xor ecx, ecx
cmp edx, 0xfffffffa
setl cl
imul ecx, ecx, 0x3d3b
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
imul edx, ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + ecx*4 + 0xb0]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x28]
imul esi, ecx
mov ecx, dword [esp + 0x14]
imul edx, esi
mov dword [esp + ecx*4 + 0xb0], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x4a354e
xor esi, esi
inc esi
mov dword [esp + 0x14], eax
jmp 0x4a3642
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a3638
push 0x511
push eax
push eax
push 0x1d2
push eax
call dword [0xad4280]
xor eax, eax
cmp dword [esp + 0x2c], eax
jne 0x4a3648
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x4a3618
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jle 0x4a351d
dec dword [esp + 0x18]
jns 0x4a34a6
lea eax, [esp + 0x50]
push eax
call fcn.004a4e29
push 3
pop edx
mov edi, dword [eax]
xor eax, eax
mov dword [esp + 0x18], 0x831713b9
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], 0xb3783ea6
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], eax
jmp 0x4a36a2
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x100], 7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x4a368f
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], 0xffffffe6
jle 0x4a386a
mov dword [esp + 0x20], 0xf33880e0
xor edx, edx
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x28], 9
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], 0x56e
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x100]
mov ecx, dword [esp + 0x20]
cmp ecx, 7
mov ecx, dword [esp + 0x18]
setle dl
cmp ecx, edx
push 0
pop ecx
setl cl
sub ecx, dword [esp + 0x20]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x100], ecx
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x18], eax
je 0x4a3761
mov dword [esp + 0x30], 0xfffffffd
mov dword [esp + 0x30], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x10], eax
jmp 0x4a3751
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x240], 0x30b9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x4a373e
dec dword [esp + 0x1c]
jmp 0x4a3858
push 3
mov dword [esp + 0x18], eax
pop edx
jmp 0x4a377d
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x14c], 0x16fefd5
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x4a376a
mov dword [esp + 0x14], eax
jmp 0x4a379c
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x214], 0x29123eba
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x4a3789
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x100], ecx
mov ecx, esi
cmp dword [esp + 0x150], eax
imul ecx, ecx, 0xb878
push 0
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
sub ecx, 0x51cc
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [esp + 0x20]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, 0xbc92
mov ecx, dword [esp + 0x154]
setg dl
sub ecx, edx
imul edx, ecx, 0xba42
mov ecx, dword [esp + 0x24]
cmp edx, ecx
pop ecx
setne cl
sub ecx, dword [esp + 0x100]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x100], ecx
jne 0x4a381b
cmp dword [esp + 0x20], eax
jne 0x4a381b
mov esi, eax
mov ecx, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
mov ecx, dword [esp + 0x150]
setle dl
add ecx, edx
mov edx, dword [esp + 0x1c]
add edx, ecx
imul ecx, edx, 0x5a15
mov edx, dword [esp + 0x10]
sub edx, ecx
neg edx
sbb edx, edx
xor esi, esi
inc edx
inc esi
mov dword [esp + 0x218], edx
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffe6
jg 0x4a36b7
push 3
pop edx
cmp byte [ebp + 0xc], al
jne 0x4a3877
test edi, edi
jne 0x4a3f16
mov ecx, 0xfab8c3ad
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x10], eax
jmp 0x4a38b1
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x10c], 0x7ddc85f7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x4a389e
mov dword [esp + 0x10c], 0x18
jmp 0x4a3969
mov dword [esp + 0x1c], 0x770a77c8
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x1c], eax
jl 0x4a3962
mov dword [esp + 0x10], eax
jmp 0x4a38f6
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0xa8], 0xfffffff8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x4a38e3
mov dword [esp + 0xa8], edx
cmp dword [esp + 0xa8], eax
jl 0x4a393e
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a3935
push eax
push 0x19cc
push eax
call dword [0xad4314]
push eax
call dword [0xad4304]
push eax
call dword [0xad404c]
xor eax, eax
dec dword [esp + 0xa8]
jns 0x4a390d
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a3955
push eax
push eax
push eax
push eax
call dword [0xad40e8]
xor eax, eax
dec dword [esp + 0x1c]
push 3
pop edx
jns 0x4a38dd
dec dword [esp + 0x10c]
cmp dword [esp + 0x10c], 0xffffffe8
jle 0x4a38c7
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x250]
mov ecx, dword [esp + 0x50]
push eax
call fcn.0047cf3c
mov esi, eax
lea edi, [esp + 0xd0]
xor eax, eax
pop ecx
push 3
movsd dword es:[edi], dword [esi]
pop edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], 0xcd833989
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x34], 0x5653649d
mov dword [esp + 0x10], 0xfffffff7
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x18], eax
jmp 0x4a39e7
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x228], 0xcff0
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x4a39d4
xor esi, esi
mov dword [esp + 0x18], eax
inc esi
jmp 0x4a3a09
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0xfc], 0x1be3
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x4a39f6
mov dword [esp + 0x18], eax
jmp 0x4a3a28
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0xf8], 0x64e48c0c
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x4a3a15
mov dword [esp + 0x18], eax
jmp 0x4a3a47
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x1a0], 0x5199
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x4a3a34
push 2
mov dword [esp + 0x24], eax
pop edi
jmp 0x4a3a7c
mov dword [esp + 0x30], 0x17e5c285
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0x20]
dec ecx
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x28], ecx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jle 0x4a3a56
cmp dword [esp + 0x2c], eax
je 0x4a3b60
mov dword [esp + 0x2c], 0xfff7
mov dword [esp + 0x28], 0xa9711f64
mov dword [esp + 0x1c], 0x5cc9e520
mov dword [esp + 0x1c], 0x2d78bea8
mov dword [esp + 0x18], 0x421a0e57
mov dword [esp + 0x14], eax
jmp 0x4a3ac9
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x1b0], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x4a3aba
mov dword [esp + 0x14], eax
jmp 0x4a3ae1
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x64], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x4a3ad5
cmp dword [esp + 0x2c], eax
jne 0x4a3b32
mov ecx, dword [esp + 0xf8]
cmp dword [esp + 0x28], eax
je 0x4a3b00
cmp dword [esp + 0x2c], eax
jne 0x4a3b07
mov ecx, dword [esp + 0x1b4]
dec dword [esp + 0x64]
mov edx, 0xe1e3c1dc
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
cmp edx, ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x20], ecx
jne 0x4a3b27
mov ecx, dword [esp + 0x64]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1b4], esi
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0xfc]
mov ecx, dword [esp + 0x10]
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
sub ecx, dword [esp + 0x18]
imul ecx, ecx, 0xf20c
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x1c], ecx
jmp 0x4a3ba2
mov dword [esp + 0x10], eax
jmp 0x4a3b9b
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a3b80
push eax
push 0x2c8
push eax
call dword [0xad426c]
xor eax, eax
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a3b97
push eax
push esi
push eax
push eax
call dword [0xad4100]
xor eax, eax
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffffc
jg 0x4a3b66
cmp byte [ebp + 0xc], 0
je 0x4a3f4f
cmp dword [esp + 0xd4], 0
je 0x4a3f4f
mov dword [esp + 0x1c], 0xa4f833fc
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], 0x1ce
mov dword [esp + 0x10], eax
jmp 0x4a3be0
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x48], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x4a3bd4
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], eax
jl 0x4a3da6
mov dword [esp + 0x10], 0x4956e74e
mov dword [esp + 0x10], eax
jmp 0x4a3c12
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x38], 0x77dd6887
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x4a3c02
mov dword [esp + 0x38], eax
cmp dword [esp + 0x38], eax
jl 0x4a3c83
mov dword [esp + 0x28], 0xe85a7b05
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
push 0
mov ecx, dword [esp + ecx*4 + 0x4c]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [esp + ecx*4 + 0x4c]
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
sub edx, 0x7f3e76e5
cmp ecx, edx
mov ecx, dword [esp + 0x3c]
pop edx
setl dl
sub edx, dword [esp + ecx*4 + 0x48]
mov ecx, dword [esp + 0x38]
neg edx
sbb edx, edx
inc edx
mov ecx, dword [esp + ecx*4 + 0x48]
add ecx, 0x68aca761
add ecx, edx
mov dword [esp + 0x34], ecx
dec dword [esp + 0x38]
jns 0x4a3c22
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], eax
jl 0x4a3d9c
push 3
pop ecx
mov dword [esp + 0x18], 0xf63588c5
mov dword [esp + 0x2c], 0xe181f51b
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], 0x2a3da798
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], eax
jl 0x4a3d92
mov dword [esp + 0x20], 0xd0c11e04
mov dword [esp + 0x20], eax
jmp 0x4a3ce0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + ecx*4 + 0x48]
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x48], edx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], eax
jle 0x4a3ccc
cmp dword [esp + 0x3c], eax
jne 0x4a3cf4
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x2c], eax
jne 0x4a3d02
cmp dword [esp + 0x18], eax
jne 0x4a3d02
mov esi, eax
mov ecx, dword [esp + 0x10]
xor edx, edx
cmp esi, ecx
setne dl
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
cmp dword [esp + 0x3c], 0xe510b2d4
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, 0x28ec
setge dl
cmp edx, dword [esp + 0x1c]
jge 0x4a3d41
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x38]
sub esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
sub esi, 5
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
setne dl
xor esi, esi
mov dword [esp + 0x28], edx
inc esi
cmp dword [esp + 0x28], esi
jne 0x4a3d79
mov ecx, eax
cmp dword [esp + 0x20], eax
je 0x4a3d7b
mov ecx, esi
add ecx, 0x3a67
mov dword [esp + 0x34], ecx
dec dword [esp + 0x18]
jns 0x4a3cbe
push 3
pop ecx
dec dword [esp + 0x10]
jns 0x4a3c94
dec dword [esp + 0x1c]
jns 0x4a3bf4
mov dword [esp + 0x14], eax
jmp 0x4a3dc4
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a3dc0
push eax
call dword [0xad40ec]
xor eax, eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x15
jne 0x4a3dac
mov ecx, dword [esp + 0xd8]
mov edi, dword [ebp + 8]
mov dword [esp + 0x14], 0x5252cb13
push 3
mov dword [esp + 0x30], 0x3c69aed2
mov dword [edi + 4], ecx
mov dword [esp + 0x1c], eax
pop edx
jmp 0x4a3e04
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x9c], 0xac453072
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x4a3df1
mov dword [esp + 0x18], eax
jmp 0x4a3e23
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x1a4], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x4a3e10
mov dword [esp + 0x18], eax
jmp 0x4a3e3f
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x1fc], esi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x4a3e30
mov ecx, dword [esp + 0x14]
xor edx, edx
cmp ecx, 8
setg dl
mov dword [esp + 0x2c], edx
mov dword [esp + 0x14], 2
cmp dword [esp + 0x14], eax
jl 0x4a3f08
mov dword [esp + 0x10], eax
xor edx, edx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
push 0
mov ecx, dword [esp + ecx*4 + 0xa0]
test ecx, ecx
mov ecx, dword [esp + 0x14]
setg dl
cmp edx, ecx
mov ecx, dword [esp + 0x18]
pop edx
setl dl
sub edx, dword [esp + ecx*4 + 0x9c]
mov ecx, dword [esp + 0xa4]
neg edx
sbb edx, edx
inc edx
imul edx, ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + ecx*4 + 0x9c]
mov dword [esp + 0x30], edx
xor edx, edx
cmp dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x14]
setle dl
cmp edx, dword [esp + ecx*4 + 0x9c]
jg 0x4a3edf
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + ecx*4 + 0x9c]
imul ecx, ecx, 0xfff7
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1fc], ecx
dec dword [esp + 0x14]
jns 0x4a3e67
mov ecx, dword [esp + 0xd4]
mov dword [edi + 8], ecx
mov edi, dword [esp + 0x24]
xor esi, esi
inc esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], 0x374fd522
mov dword [esp + 0x20], 6
mov dword [esp + 0x10], 0x18101bc
mov dword [esp + 0x28], 0xb2e1d86e
mov dword [esp + 0x18], esi
mov dword [esp + 0x28], 0x6b51f0ef
mov dword [esp + 0x1c], eax
jmp 0x4a3f65
mov edi, dword [esp + 0x24]
jmp 0x4a3f19
mov ecx, dword [esp + 0x1c]
mov dword [esp + ecx*4 + 0x58], 0xf4a8
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x4a3f55
mov dword [esp + 0x18], eax
jmp 0x4a3f82
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x58], 0xef72
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x4a3f72
mov dword [esp + 0x18], eax
jmp 0x4a413a
mov dword [esp + 0x28], 0xfffffff9
xor edx, edx
mov dword [esp + 0x34], 0xb252
mov ecx, dword [esp + 0x18]
push 0
mov ecx, dword [esp + ecx*4 + 0x5c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + ecx*4 + 0x5c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + ecx*4 + 0x5c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + ecx*4 + 0x5c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
imul ecx, dword [esp + 0x20]
cmp ecx, 0x1721
mov ecx, dword [esp + 0x18]
setge dl
mov dword [esp + 0x34], edx
xor edx, edx
cmp dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x24]
setle dl
add edx, 0xfffa
cmp edx, ecx
pop ecx
setg cl
cmp ecx, 4
jge 0x4a401e
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
xor edx, edx
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x5c]
test ecx, ecx
setns dl
xor ecx, ecx
cmp edx, esi
setge cl
xor edx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + ecx*4 + 0x58]
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x30]
cmp ecx, 0xf2a6
setl dl
xor ecx, ecx
cmp esi, edx
setg cl
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x20]
je 0x4a409c
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a4116
push eax
push 0xaed
push 0x1a54
push eax
push 0xf8a
push 0x6e5
push eax
call dword [0xad40e0]
xor eax, eax
jmp 0x4a4116
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 0xf123efbb
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x14], 9
sbb ecx, ecx
neg ecx
mov dword [esp + 0x14], ecx
je 0x4a40d2
mov ecx, dword [esp + 0x18]
cmp dword [esp + ecx*4 + 0x58], eax
je 0x4a40d2
xor ecx, ecx
inc ecx
jmp 0x4a40d4
mov ecx, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x10], 0xffffffe7
jmp 0x4a410f
cmp dword [esp + 0x1c], eax
jne 0x4a4116
mov dword [esp + 0x14], 0xfffffff4
jmp 0x4a4104
mov dword [esp + 0x28], 0xd1904503
cmp dword [esp + 0x2c], eax
jne 0x4a410b
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 5
jge 0x4a40f2
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x10
jle 0x4a40e2
mov dword [esp + 0x20], eax
jmp 0x4a412c
mov ecx, dword [esp + 0x20]
mov dword [esp + ecx*4 + 0x58], 0x39c3
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 2
jl 0x4a411c
inc dword [esp + 0x18]
xor esi, esi
inc esi
cmp dword [esp + 0x18], esi
jle 0x4a3f92
test edi, edi
jne 0x4a46e1
cmp dword [esp + 0xcc], edi
jle 0x4a46e1
mov dword [esp + 0x18], 0xfe7d8a87
mov dword [esp + 0x2c], 0xbc254e7f
mov dword [esp + 0x1c], 0x65721867
mov dword [esp + 0x10], eax
jmp 0x4a4187
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x6c], 0xfffffffb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x4a4177
push 3
mov dword [esp + 0x1c], eax
pop edi
jmp 0x4a427f
mov ecx, dword [esp + 0x18]
cmp dword [esp + ecx*4 + 0x6c], eax
je 0x4a41df
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + ecx*4 + 0x6c]
mov ecx, dword [esp + 0x18]
add edx, dword [esp + ecx*4 + 0x6c]
jne 0x4a41c2
mov ecx, dword [esp + 0x18]
cmp dword [esp + ecx*4 + 0x6c], eax
mov ecx, eax
je 0x4a41c4
mov ecx, esi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x78]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
inc ecx
jne 0x4a41e1
mov esi, eax
mov ecx, dword [esp + 0x1c]
xor edx, edx
cmp esi, ecx
mov ecx, dword [esp + 0x6c]
push 0
setl dl
neg edx
cmp ecx, edx
pop ecx
setge cl
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x18]
push 0
mov edx, dword [esp + ecx*4 + 0x70]
imul edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x70]
cmp edx, ecx
pop ecx
setl cl
xor edx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x30], ecx
setl dl
imul ecx, edx, 0x5752
test ecx, ecx
je 0x4a423a
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + ecx*4 + 0x6c]
mov ecx, dword [esp + 0x18]
push 0
mov ecx, dword [esp + ecx*4 + 0x70]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + ecx*4 + 0x70]
mov ecx, dword [esp + 0x78]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + ecx*4 + 0x70]
mov ecx, dword [esp + 0x1c]
cmp ecx, edx
pop ecx
setne cl
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
cmp dword [esp + ecx*4 + 0x6c], eax
jne 0x4a4289
inc dword [esp + 0x18]
push 1
pop esi
cmp dword [esp + 0x18], edi
jle 0x4a419a
mov ecx, dword [esp + 0x1c]
xor esi, esi
mov dword [esp + 0x2c], ecx
inc esi
mov dword [esp + 0x2c], 0x12b57e8b
mov dword [esp + 0x28], 0xfa4ad744
mov dword [esp + 0x30], 0x8f59172d
mov dword [esp + 0x34], 0xd2fc5c3c
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x28], 0x971cf71
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x28], 0x307758a8
mov dword [esp + 0x14], eax
jmp 0x4a42ea
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x54], 0xfffffffe
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x4a42da
mov dword [esp + 0x14], eax
jmp 0x4a4309
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x128], 0x66c146df
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x4a42f6
mov ecx, dword [esp + 0x54]
xor edx, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x54]
cmp ecx, esi
mov ecx, dword [esp + 0x54]
setg dl
sub edx, ecx
je 0x4a4332
mov ecx, esi
cmp dword [esp + 0x30], eax
jne 0x4a4334
mov ecx, eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x28], eax
je 0x4a4342
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x2c]
sub edx, ecx
neg edx
sbb edx, edx
inc edx
mov dword [esp + 0x28], edx
xor edx, edx
mov ecx, dword [esp + 0x28]
cmp ecx, 0x4e20eeb4
setle dl
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x128], esi
mov dword [esp + 0x1c], 0x20fe
mov dword [esp + 0x28], eax
mov dword [esp + 0x28], 0x56c37fc0
mov dword [esp + 0x28], 0x2294bb48
mov dword [esp + 0x28], 0x8af066b
mov dword [esp + 0x30], 0x616d21b1
mov dword [esp + 0x10], eax
jmp 0x4a43bc
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x1e0], 0x7507af9c
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x4a43a9
mov ecx, dword [esp + 0x1c]
mov edx, 0xa96950a4
sub edx, ecx
add edx, dword [esp + 0x1c]
mov dword [esp + 0x28], edx
xor edx, edx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], 0xffffffff
mov ecx, dword [esp + 0x28]
cmp ecx, esi
push 0
setle dl
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
cmp edx, ecx
pop ecx
setl cl
imul ecx, ecx, 0x819d
push 0
cmp ecx, 8
sbb ecx, ecx
inc ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
sub ecx, 0xfffffffa
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x1ec], ecx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1ec]
cmp edx, ecx
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0xd0]
pop ecx
setne cl
sub edx, ecx
neg edx
push 3
sbb edx, edx
inc edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x14], eax
pop edx
jmp 0x4a4471
mov dword [esp + 0x10], 0x11accbad
mov dword [esp + 0x20], 0x2ae7b79f
mov dword [esp + 0x2c], 0x2ba29f58
mov dword [esp + 0x28], 0x33a79cc0
mov dword [esp + 0x1c], 0x9bb7a140
mov dword [esp + 0x24], eax
jmp 0x4a4722
mov ecx, dword [esp + 0x24]
mov dword [esp + ecx*4 + 0x1c4], 0x23b16aac
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 2
jl 0x4a470f
cmp dword [esp + 0x10], eax
je 0x4a4777
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
cmp ecx, 0xffffffff
mov ecx, dword [esp + 0x20]
setle dl
mov dword [esp + 0x30], edx
xor edx, edx
cmp ecx, dword [esp + 0x30]
setg dl
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x10], eax
je 0x4a4777
cmp dword [esp + 0x2c], eax
je 0x4a4777
xor esi, esi
inc esi
mov ecx, esi
jmp 0x4a477c
xor esi, esi
mov ecx, eax
inc esi
imul ecx, ecx, 0xee4c
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x28], eax
jne 0x4a4794
mov ecx, eax
cmp dword [esp + 0x20], eax
je 0x4a4796
mov ecx, esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x1c], eax
jmp 0x4a47b3
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x1c4], 0xc7153413
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x4a47a0
lea ecx, [esp + 0xcc]
call fcn.0048e8af
mov dword [esp + 0x1c], 0xdba76aab
xor eax, eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x24], eax
jmp 0x4a47e9
mov ecx, dword [esp + 0x24]
mov dword [esp + ecx*4 + 0x190], esi
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 4
jl 0x4a47da
push 3
pop ecx
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x1c], eax
jl 0x4a489c
mov dword [esp + 0x10], 0x85283535
mov dword [esp + 0x24], 0x813a3dbc
mov ecx, dword [esp + 0x190]
mov ecx, dword [esp + 0x1c]
push 0
mov ecx, dword [esp + ecx*4 + 0x194]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x19c]
mov ecx, dword [esp + 0x194]
cmp edx, ecx
pop ecx
setle cl
mov dword [esp + 0x24], ecx
push 3
pop ecx
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x10], eax
jl 0x4a4892
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x24], eax
jl 0x4a488c
mov dword [esp + 0x28], 5
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a487f
push eax
push eax
push eax
push eax
call dword [0xad40e4]
xor eax, eax
inc dword [esp + 0x28]
dec dword [esp + 0x24]
jns 0x4a4860
push 3
pop ecx
dec dword [esp + 0x10]
jns 0x4a4856
dec dword [esp + 0x1c]
jns 0x4a4801
test edi, edi
je 0x4a4c65
mov dword [esp + 0x10], 0x86e8
push 0xfffffffffffffff9
pop edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], 0x7ebd004d
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x2c], esi
mov dword [esp + 0x34], 5
mov dword [esp + 0x14], eax
jmp 0x4a48e5
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x60], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x4a48d9
mov dword [esp + 0x14], eax
jmp 0x4a4904
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x158], 0x2f38d927
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x4a48f1
mov ecx, dword [esp + 0x60]
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x60]
sub edx, ecx
mov ecx, dword [esp + 0x164]
neg edx
push 0
sbb edx, edx
inc edx
imul edx, edx, 0x65f
cmp edx, ecx
mov ecx, dword [esp + 0x30]
pop edx
setle dl
add ecx, dword [esp + 0x10]
inc dword [esp + 0x2c]
cmp ecx, edx
mov ecx, dword [esp + 0x10]
mov edx, esi
cmovge edx, eax
sub ecx, edx
neg ecx
sbb ecx, ecx
inc ecx
add ecx, dword [esp + 0x10]
imul ecx, dword [esp + 0x30]
cmp ecx, 0x2967684a
jne 0x4a4a13
mov dword [esp + 0x30], 0x2ad0
mov dword [esp + 0x24], eax
jmp 0x4a498a
mov dword [esp + 0x10], 0xf69ff98e
mov dword [esp + 0x28], 0xe235bd63
mov dword [esp + 0x30], 0xa4162a97
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x24], eax
jmp 0x4a4a4c
mov edi, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x24], esi
push 3
mov dword [esp + 0x28], eax
pop edx
jmp 0x4a4c8a
mov ecx, dword [esp + 0x24]
mov dword [esp + ecx*4 + 0x234], 0xd7f825e7
inc dword [esp + 0x24]
cmp dword [esp + 0x24], edx
jl 0x4a4c77
push 2
pop esi
mov dword [esp + 0x24], esi
cmp dword [esp + 0x24], eax
jl 0x4a4d03
mov dword [esp + 0x1c], 0xa4d073ff
inc dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
jmp 0x4a4cf7
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a4cdd
push eax
push 0x1511
push eax
push 0x14aa
push eax
call dword [0xad4314]
push eax
call dword [0xad4304]
push eax
call dword [0xad42f4]
xor eax, eax
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4a4cf3
cmp dword [esp + 0x1c], esi
jle 0x4a4caf
dec dword [esp + 0x24]
jns 0x4a4c9d
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret