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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0xcc
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xe4]
mov esi, dword [esp + 0xe8]
mov edx, dword [ecx + 8]
mov dword [esp + 0xb8], edx
xor eax, eax
xor edx, edx
mov dword [esp + 0x90], eax
mov ecx, dword [ebx]
test ecx, ecx
jle 0x538558
mov eax, edx
shl eax, 4
lea eax, [eax + edx*8]
mov ebp, dword [esi + 0x37e0]
test ebp, ebp
je 0x53980e
mov ebp, dword [ebx + 0x34]
mov edi, dword [eax + ebp + 0x10]
mov dword [esp + edx*4 + 0x30], edi
mov edi, dword [eax + ebp + 0xc]
mov dword [esp + edx*4 + 0x40], edi
mov edi, dword [eax + ebp + 4]
imul edi, dword [eax + ebp + 8]
add eax, 0x18
mov dword [esp + edx*4 + 0x50], edi
inc edx
cmp edx, ecx
jl 0x538522
cmp ecx, 1
jne 0x538565
mov dword [esp + 0x50], 1
mov eax, dword [esi + 0x37b8]
cmp eax, 1
mov dword [esp + 0xb0], eax
je 0x5397e4
mov eax, dword [esi + 0x37bc]
mov dword [esp + 0xa8], eax
mov al, 1
xor ecx, ecx
mov edi, dword [esi + 0x37c0]
mov byte [esp + 0xa0], al
test edi, edi
jle 0x5385de
mov edx, ecx
shl edx, 4
test al, al
je 0x5397d1
mov ebp, dword [esi + 0x37cc]
mov ebx, dword [ebp + edx + 4]
cmp ebx, dword [ebp + edx + 8]
je 0x5385bc
xor al, al
cmp ebx, 1
je 0x5385c8
cmp ebx, 2
je 0x5385c8
xor al, al
add edx, 0x10
inc ecx
cmp ecx, edi
jl 0x5385a2
mov byte [esp + 0xa0], al
mov ebx, dword [esp + 0xe4]
mov eax, 8
xor edx, edx
mov ecx, dword [esp + 0xec]
idiv ecx
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0xb0]
mov eax, dword [esi + 4]
imul ecx, dword [esp + 0xb4]
cdq
idiv ecx
mov dword [esp + 0x9c], eax
mov ebp, dword [esi + 0xc]
lea eax, [ebp + ecx - 1]
cdq
idiv ecx
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0xa8]
mov eax, dword [esi + 8]
imul ecx, dword [esp + 0xb4]
cdq
idiv ecx
mov dword [esp + 0xbc], eax
mov ebp, dword [esi + 0x10]
lea eax, [ebp + ecx - 1]
cdq
idiv ecx
mov edx, dword [esi + 0x4de8]
cmp edx, 1
mov dword [esp + 0xc0], eax
je 0x5397b0
xor eax, eax
mov dword [esp + 0xc4], eax
cmp edx, 1
je 0x53978f
xor eax, eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x538692
sub eax, dword [esp + 0xc4]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x5386ab
sub eax, dword [esp + 0x94]
mov dword [esp + 0xbc], eax
mov ecx, dword [esi + 0x78]
mov eax, dword [esp + 0x98]
cmp eax, ecx
jge 0x5386c7
mov eax, dword [esp + 0xc4]
add dword [esp + 0x98], eax
mov eax, dword [esi + 0x7c]
mov edx, dword [esp + 0xc0]
cmp edx, eax
mov dword [esp + 0x7c], eax
jge 0x5386e7
mov eax, dword [esp + 0x94]
add dword [esp + 0xc0], eax
xor ebp, ebp
test edi, edi
jle 0x53873f
mov edx, dword [esi + 0x37cc]
mov eax, ebp
shl eax, 4
mov dword [esp + 0x8c], ecx
mov ebx, dword [esp + 0x90]
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [eax + edx + 4]
inc ebp
imul ecx, dword [eax + edx + 8]
add ebx, ecx
add eax, 0x10
cmp ebp, edi
jl 0x538710
mov dword [esp + 0x90], ebx
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xe4]
mov eax, dword [ebx + 8]
test eax, eax
je 0x538d60
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x538d60
mov ebp, dword [ebx + 0x34]
mov eax, dword [esp + 0xb0]
add eax, eax
add eax, eax
add eax, eax
mov ecx, dword [ebp + 4]
cdq
idiv ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xa8]
add eax, eax
add eax, eax
add eax, eax
mov ebp, dword [ebp + 8]
cdq
idiv ebp
mov dword [esp + 0xa8], eax
mov ebp, dword [esi + 0x4c]
mov ecx, dword [esp + 0xac]
lea eax, [ecx + ebp - 1]
cdq
idiv ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esi + 0x50]
mov ebp, dword [esp + 0xa8]
cdq
xor eax, edx
sub eax, edx
lea eax, [ebp + eax - 1]
cdq
mov ecx, dword [esp + 0x7c]
idiv ebp
mov ebp, dword [ebx + 0x20]
cmp ebp, ecx
jge 0x5394eb
mov ecx, dword [esp + 0x90]
mov edx, ecx
shl edx, 7
shl ecx, 7
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], eax
jmp 0x5387f5
mov edi, dword [esi + 0x37c0]
cmp edi, dword [esi + 0x37d8]
jl 0x538a2b
xor eax, eax
mov edx, dword [esp + 0xe4]
mov ecx, dword [edx + 0x34]
mov edx, dword [ecx + 8]
test edx, edx
jle 0x538a2b
lea edi, [ebp + ebp]
add edi, edi
add edi, edi
lea ebx, [eax + eax]
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x74], edi
mov edi, eax
mov dword [esp + 0x88], ebp
mov ebp, edx
imul ebp, dword [esp + 0x74]
add ebp, ebx
cmp ebp, dword [esi + 0x50]
jge 0x539330
mov ebp, dword [esp + 0xe4]
mov eax, dword [ebp + 0x1c]
mov ebp, dword [esi + 0x78]
cmp eax, ebp
jge 0x538a12
mov edx, dword [ecx + 4]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x78], edi
mov edi, ebp
xor ecx, ecx
mov ebx, dword [esp + 0x68]
imul edi, dword [esp + 0x88]
add edi, eax
mov ebx, dword [ebx]
imul edi, dword [esp + 0x84]
add edi, dword [esi + 0x4de4]
mov dword [esp + 0xac], ebx
test ebx, ebx
jle 0x5388fa
mov ebx, dword [esi + 0x37cc]
mov dword [esp + 0xa4], ebx
mov ebx, ecx
shl ebx, 4
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0xac]
mov dword [esp + 0x7c], eax
mov eax, dword [edx + ebx + 4]
shl eax, 7
inc ecx
imul eax, dword [edx + ebx + 8]
add edi, eax
add edx, 0x10
cmp ecx, ebp
jl 0x5388d1
mov edx, dword [esp + 0x64]
mov ebp, dword [esp + 0x6c]
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xe8]
mov ebx, edx
shl ebx, 7
imul ebx, dword [esp + 0x78]
add ebx, edi
xor edi, edi
test edx, edx
jle 0x5389fa
lea ebp, [edi + edi]
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x7c], eax
mov esi, dword [esp + 0xe4]
lea eax, [edx + edx]
add eax, eax
add eax, eax
imul eax, dword [esp + 0x7c]
add eax, ebp
mov ecx, dword [esp + 0xe8]
cmp eax, dword [ecx + 0x4c]
jge 0x539310
mov eax, dword [esi + 0x10]
test eax, eax
je 0x5392ca
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x30]
mov ecx, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x14], eax
call fcn.00513b30
add ebx, 0x80
mov eax, dword [esi + 0x34]
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0xb0]
mov dword [esp], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x7c]
imul edx, dword [eax + 4]
add edx, edi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x88]
imul edx, dword [eax + 8]
add edx, dword [esp + 0x78]
mov dword [esp + 0x14], edx
call fcn.005370b0
test eax, eax
jne 0x539820
add ebp, 8
inc edi
mov eax, dword [esi + 0x34]
mov dword [esp + 0x68], eax
mov edx, dword [eax + 4]
cmp edi, edx
jl 0x538922
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xe8]
mov ebp, dword [esi + 0x78]
inc eax
cmp eax, ebp
jl 0x53886a
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x78]
mov edx, dword [ecx + 8]
add ebx, 8
inc edi
cmp edi, edx
jl 0x538834
mov ebp, dword [esp + 0x88]
mov edi, dword [esi + 0x37c0]
cmp edi, dword [esi + 0x37d4]
jg 0x538d40
cmp edi, dword [esi + 0x37d8]
jg 0x538d40
mov eax, dword [esp + 0xbc]
cmp ebp, eax
jl 0x538d40
mov eax, dword [esp + 0xc0]
cmp ebp, eax
jge 0x538d40
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x538a75
mov eax, dword [eax]
test eax, eax
je 0x538bb0
mov eax, dword [esp + 0xe4]
mov eax, dword [eax + 0x1c]
sub eax, dword [esp + 0x9c]
test eax, eax
jle 0x539470
mov edx, ebp
mov ebx, dword [esi + 0x30]
mov ecx, dword [esp + 0x98]
imul ebx, dword [esi + 0x37b8]
imul eax, ebx
mov ebx, dword [esp + 0x9c]
sub edx, dword [esp + 0xbc]
imul edx, dword [esi + 0x37bc]
imul edx, dword [esi + 0x3c]
add edx, eax
mov eax, dword [esp + 0xe0]
imul edx, dword [esp + 0xb4]
add edx, dword [esi + 0x20]
mov dword [eax + 0x2c], edx
cmp ebx, ecx
jge 0x5393e8
mov eax, ebp
mov edi, dword [esi + 0x4834]
mov edx, dword [esp + 0x80]
imul eax, dword [esi + 0x78]
add eax, ebx
imul eax, dword [esp + 0x84]
add eax, dword [esi + 0x4de4]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call dword [0x5d73a8]
mov edx, edi
xor eax, eax
mov ecx, dword [esi + 0x37c0]
test ecx, ecx
jle 0x53937f
mov dword [esp + 0xac], edx
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa4], ebx
mov edi, ecx
mov dword [esp + 0x88], ebp
mov ecx, eax
shl ecx, 4
mov edx, ecx
add edx, dword [esi + 0x37cc]
mov ebp, dword [edx + 4]
xor ebx, ebx
imul ebp, dword [edx + 8]
test ebp, ebp
jle 0x539361
mov dword [esp + 0x78], ecx
mov edi, dword [esp + 0xac]
mov dword [esp + 0x7c], eax
jmp 0x538b7a
mov edx, dword [esi + 0x37cc]
add edx, dword [esp + 0x78]
mov dword [esp], edi
mov eax, dword [edx + 0xc]
imul edx, eax, 0xb4
mov ecx, dword [edx + esi + 0x9c]
mov eax, dword [esp + 0xb8]
mov dword [esp + 4], ecx
call dword [eax + 0x110]
add edi, 0x80
inc ebx
cmp ebx, ebp
jl 0x538b70
jmp 0x539350
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
cmp ebx, eax
jge 0x538d40
mov eax, dword [esi + 0x78]
mov dword [esp + 0x78], eax
mov dword [esp + 0x88], ebp
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0xe8]
imul edx, dword [esp + 0x88]
add edx, ebx
imul edx, dword [esp + 0x84]
add edx, dword [eax + 0x4de4]
xor eax, eax
test edi, edi
jle 0x5394bd
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx + 0x37cc]
mov ebp, dword [esp + 0x88]
shl ebp, 7
mov esi, ebx
shl esi, 4
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], ebx
xor ebx, ebx
mov ebp, eax
shl ebp, 4
mov esi, dword [ebp + ecx + 8]
test esi, esi
jle 0x5394b0
lea edi, [eax + eax]
mov edx, dword [ebp + ecx + 4]
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], eax
xor eax, eax
test edx, edx
jle 0x539496
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x78]
mov dword [esp + 0xac], ebp
jmp 0x538c8b
mov ebp, dword [esp + 0xac]
mov esi, dword [ebp + ecx + 8]
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx + 0x4ddc]
mov ebp, dword [esp + 0x70]
imul ebp, edi
imul ebp, edx
imul esi, ebp
mov ebp, dword [esp + 0x6c]
add esi, dword [ecx + ebx*2 + 4]
imul ebp, edx
add esi, ebp
shl edi, 7
imul edx, edi
xor ebp, ebp
imul edx, dword [esp + 0xa8]
add esi, edx
mov edx, eax
shl edx, 4
add esi, edx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xa4], eax
lea esi, [esi]
lea edi, [edi]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], 0x10
call dword [0x5d73a8]
mov edi, dword [esp + 0xe8]
mov ecx, dword [edi + 0x37cc]
mov edi, dword [edi + 0x78]
mov edx, dword [esp + 0xac]
mov edx, dword [edx + ecx + 4]
mov eax, edi
shl eax, 4
imul eax, edx
add esi, eax
add ebx, 0x10
inc ebp
cmp ebp, 8
jl 0x538ce0
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0x64]
inc eax
cmp eax, edx
jl 0x538c80
jmp 0x539480
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x5395dd
inc ebp
mov eax, dword [esi + 0x7c]
cmp ebp, eax
jl 0x5387ef
jmp 0x5394e0
mov ebp, dword [ebx + 0x20]
mov eax, dword [esp + 0x7c]
cmp ebp, eax
jge 0x53929d
mov eax, dword [esp + 0x90]
mov edx, eax
shl edx, 7
shl eax, 7
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x6c], edx
mov edi, dword [ebx + 0x1c]
cmp edi, ecx
jge 0x53928e
mov eax, ebp
shl eax, 7
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], ebp
mov ebp, ecx
xor eax, eax
mov edx, dword [ebx + 0x34]
imul ebp, dword [esp + 0x70]
add ebp, edi
mov edx, dword [edx]
imul ebp, dword [esp + 0x6c]
add ebp, dword [esi + 0x4de4]
mov dword [esp + 0xac], edx
test edx, edx
jle 0x538e32
mov edx, dword [esi + 0x37cc]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x88], edx
mov edx, eax
shl edx, 4
mov dword [esp + 0xa8], edx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x8c], ecx
mov ecx, edx
mov dword [esp + 0xa4], edi
nop
mov edx, dword [ecx + ebx + 4]
shl edx, 7
inc eax
imul edx, dword [ecx + ebx + 8]
add ebp, edx
add ecx, 0x10
cmp eax, esi
jl 0x538e00
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xe4]
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x538ee0
xor eax, eax
mov edx, dword [ebx]
test edx, edx
jle 0x538f4f
mov dword [esp + 0xa4], edi
mov esi, eax
xor edi, edi
mov ecx, dword [esp + esi*4 + 0x50]
test ecx, ecx
jle 0x538ebc
lea esi, [esi]
mov dword [esp], ebp
mov dword [esp + 4], 0x80
call dword [0x5d73a4]
mov edx, dword [ebx + esi*4 + 0x24]
mov ecx, dword [esp + 0xe0]
mov word [esp + 0x60], dx
mov edx, dword [esp + esi*4 + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
lea edx, [esp + 0x60]
mov dword [esp + 0xc], edx
mov edx, dword [ebx + 0x14]
mov dword [esp + 0x10], edx
call fcn.00513830
movsx edx, word [esp + 0x60]
add ebp, 0x80
inc edi
mov dword [ebx + esi*4 + 0x24], edx
cmp edi, dword [esp + esi*4 + 0x50]
jl 0x538e60
mov edx, dword [ebx]
inc esi
cmp esi, edx
jl 0x538e52
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ecx, dword [esi + 0x78]
jmp 0x538f4f
xor eax, eax
mov edx, dword [ebx]
test edx, edx
jle 0x538f4f
mov dword [esp + 0xa4], edi
xor esi, esi
mov ecx, dword [esp + eax*4 + 0x50]
test ecx, ecx
jle 0x538f39
mov dword [esp + 0xac], eax
mov edi, dword [esp + 0xe0]
mov esi, esi
lea edi, [edi]
mov dword [esp], edi
mov eax, dword [ebx + 0x14]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.00513910
add ebp, 0x80
inc esi
mov eax, dword [esp + 0xac]
cmp esi, dword [esp + eax*4 + 0x50]
jl 0x538f10
mov edx, dword [ebx]
inc eax
cmp eax, edx
jl 0x538eef
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ecx, dword [esi + 0x78]
mov edx, dword [esp + 0xe0]
mov eax, dword [esi + 0x7c]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
call fcn.005370b0
test eax, eax
jne 0x539830
mov eax, dword [esp + 0x9c]
cmp edi, eax
jl 0x539270
mov eax, dword [esp + 0x98]
cmp edi, eax
jge 0x539260
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x70]
cmp edx, eax
jl 0x539250
mov eax, dword [esp + 0xc0]
cmp edx, eax
jge 0x539240
mov edx, dword [esi + 0x37c0]
cmp edx, dword [esi + 0x37d4]
jg 0x539230
cmp edx, dword [esi + 0x37d8]
jg 0x539220
mov ecx, dword [esi + 0x78]
mov eax, ecx
imul eax, dword [esp + 0x70]
add eax, edi
imul eax, dword [esp + 0x6c]
add eax, dword [esi + 0x4de4]
mov dword [esp + 0x74], eax
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x539150
mov eax, dword [eax]
test eax, eax
jne 0x539150
xor ebp, ebp
test edx, edx
jle 0x539273
mov eax, dword [esi + 0x37cc]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0xa4], edi
xor ecx, ecx
mov edi, ebp
shl edi, 4
mov ebx, dword [edi + eax + 8]
test ebx, ebx
jle 0x53966d
lea edx, [ebp + ebp]
mov esi, dword [esp + 0xa4]
mov dword [esp + 0xa8], edx
mov edx, dword [edi + eax + 4]
shl esi, 4
mov dword [esp + 0xac], esi
mov dword [esp + 0x88], ebp
xor esi, esi
test edx, edx
jle 0x539650
mov eax, ecx
shl eax, 7
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0x8c]
jmp 0x5390a8
mov ebx, dword [esp + 0x78]
mov ebx, dword [ebx + eax + 8]
mov ebp, esi
shl ebp, 4
mov eax, dword [esp + 0xe8]
mov eax, dword [eax + 0x4ddc]
add ebp, dword [eax + edi*2 + 4]
mov eax, dword [esp + 0x64]
imul eax, ecx
imul eax, edx
imul ebx, eax
add ebp, ebx
mov ebx, edx
imul ebx, dword [esp + 0x80]
imul edx, dword [esp + 0xac]
imul ecx, ebx
add ebp, ecx
add ebp, edx
xor ebx, ebx
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x74]
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], 0x10
call dword [0x5d73a8]
mov ecx, dword [esp + 0xe8]
mov eax, dword [ecx + 0x37cc]
mov ecx, dword [ecx + 0x78]
mov edx, dword [esp + 0x78]
mov edx, dword [edx + eax + 4]
mov edi, ecx
shl edi, 4
imul edi, edx
add ebp, edi
add esi, 0x10
inc ebx
cmp ebx, 8
jl 0x5390f0
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0xa8]
inc esi
cmp esi, edx
jl 0x5390a0
jmp 0x53963a
mov ebp, dword [esi + 0x4834]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x68]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call dword [0x5d73a8]
mov edx, dword [esi + 0x4834]
xor eax, eax
mov ecx, dword [esi + 0x37c0]
test ecx, ecx
jle 0x5396d2
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], ebp
mov dword [esp + 0xa4], edi
mov edi, eax
shl edi, 4
mov edx, edi
add edx, dword [esi + 0x37cc]
mov ebp, dword [edx + 4]
xor ebx, ebx
imul ebp, dword [edx + 8]
test ebp, ebp
jle 0x5396b4
mov dword [esp + 0xb4], edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 0xb0], eax
jmp 0x5391dd
mov edx, dword [esi + 0x37cc]
add edx, dword [esp + 0xb4]
mov dword [esp], edi
mov eax, dword [edx + 0xc]
imul ecx, eax, 0xb4
mov edx, dword [ecx + esi + 0x9c]
mov eax, dword [esp + 0xb8]
mov dword [esp + 4], edx
call dword [eax + 0x110]
add edi, 0x80
inc ebx
cmp ebx, ebp
jl 0x5391d0
jmp 0x5396a0
mov ecx, dword [esi + 0x78]
jmp 0x539273
mov ecx, dword [esi + 0x78]
jmp 0x539273
mov ecx, dword [esi + 0x78]
jmp 0x539273
mov ecx, dword [esi + 0x78]
jmp 0x539273
mov ecx, dword [esi + 0x78]
jmp 0x539273
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x539730
inc edi
cmp edi, ecx
jl 0x538da2
mov ebp, dword [esp + 0x70]
mov eax, dword [esi + 0x7c]
inc ebp
cmp ebp, eax
jl 0x538d8a
mov edi, dword [esi + 0x37c0]
cmp edi, dword [esi + 0x37d4]
jg 0x5392bd
cmp edi, dword [esi + 0x37d8]
jg 0x5392bd
mov eax, 2
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x30]
mov ecx, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x14], eax
call fcn.00513980
add ebx, 0x80
jmp 0x538981
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xe8]
mov ebp, dword [esi + 0x78]
jmp 0x5389fa
mov ebp, dword [esp + 0x88]
mov edi, dword [esi + 0x37c0]
jmp 0x538a2b
mov dword [esp + 0xac], edi
mov eax, dword [esp + 0x7c]
mov edi, dword [esi + 0x37c0]
inc eax
cmp eax, edi
jl 0x538b40
mov edi, dword [esp + 0xa8]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x88]
mov dword [esp], esi
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x90]
mov eax, dword [esi + 0x7c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edi
mov edi, dword [esi + 0x78]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0x28], al
call fcn.00535a50
inc ebx
mov eax, dword [esp + 0x98]
cmp ebx, eax
jl 0x538adc
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x538d40
mov eax, dword [esp + 0x98]
cmp ebx, eax
jne 0x538d40
mov dword [esp], esi
mov edi, dword [esp + 0xe0]
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], edi
mov edx, dword [esp + 0x90]
mov ecx, dword [esi + 0x4834]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x7c]
mov dword [esp + 0xc], ebx
mov ebx, dword [esi + 0x78]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0x28], al
call fcn.00535a50
jmp 0x538d40
xor eax, eax
jmp 0x538a8e
mov dword [esp + 0x78], edi
mov ebx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov esi, dword [ebp + ecx + 8]
inc ebx
cmp ebx, esi
jl 0x538c4f
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0xe8]
mov edi, dword [edx + 0x37c0]
inc eax
cmp eax, edi
jl 0x538c2d
mov ebx, dword [esp + 0x7c]
inc ebx
mov eax, dword [esp + 0x98]
cmp ebx, eax
jl 0x538bd4
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0xe8]
jmp 0x538d40
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0xe4]
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x5394ff
mov eax, dword [eax]
test eax, eax
je 0x5395ab
mov eax, dword [esp + 0x94]
test eax, eax
je 0x5395a0
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
cmp edx, eax
jg 0x5395b6
mov eax, dword [esp + 0x7c]
mov ebp, edx
jmp 0x539533
mov eax, dword [esi + 0x7c]
mov dword [esp], esi
mov edi, dword [esp + 0xe0]
mov edx, dword [esp + 0x90]
mov dword [esp + 4], edi
mov ecx, dword [esi + 0x4834]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov edx, dword [esi + 0x78]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0x28], al
call fcn.00535a50
inc ebp
mov eax, dword [esp + 0x98]
cmp ebp, eax
jle 0x539530
jmp 0x5395b6
mov edi, dword [esi + 0x37c0]
jmp 0x53929d
mov edi, dword [esi + 0x37c0]
jmp 0x53929d
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x5395c8
mov edi, dword [esi + 0x37c0]
jmp 0x53929d
xor edx, edx
xor eax, eax
mov dword [ebx + 0x1c], edx
mov dword [ebx + 0x20], edx
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov ebx, dword [esp + 0xe4]
lea edx, [ebp + 1]
mov eax, dword [esp + 0x94]
mov dword [ebx + 0x20], edx
mov dword [ebx + 0x1c], 0
add eax, dword [esi + 0x7c]
cmp edx, eax
jne 0x539613
mov dword [ebx + 0x20], 0
xor eax, eax
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [esi + 0x78]
dec edx
mov eax, 1
mov dword [esi + 0xc], edx
sub ebp, dword [esp + 0x94]
mov dword [esi + 0x10], ebp
mov dword [esi + 4], edx
mov dword [esi + 8], ebp
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x84]
mov edi, dword [esp + 0x78]
mov ebx, dword [edi + eax + 8]
inc ecx
cmp ecx, ebx
jl 0x53906a
mov ebp, dword [esp + 0x88]
mov edx, dword [esp + 0xe8]
mov edx, dword [edx + 0x37c0]
inc ebp
cmp ebp, edx
jl 0x539030
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xe4]
jmp 0x539273
mov dword [esp + 0xa8], edi
mov eax, dword [esp + 0xb0]
mov ecx, dword [esi + 0x37c0]
inc eax
cmp eax, ecx
jl 0x53919a
mov ebp, dword [esp + 0xac]
mov edi, dword [esp + 0xa4]
mov ebx, dword [esp + 0xe4]
mov dword [esp], esi
mov eax, dword [esp + 0xe0]
mov ecx, dword [esi + 0x78]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov edx, dword [esi + 0x7c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x14], eax
mov al, byte [esp + 0xa0]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0xec]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ebp
mov byte [esp + 0x28], al
call fcn.00535a50
mov ecx, dword [esi + 0x78]
jmp 0x539273
mov ebp, dword [esp + 0x70]
lea eax, [edi + 1]
cdq
idiv ecx
test edx, edx
mov dword [ebx + 0x1c], edx
je 0x539746
mov dword [ebx + 0x20], ebp
jmp 0x539765
lea eax, [ebp + 1]
mov dword [ebx + 0x20], eax
cmp eax, dword [esi + 0x7c]
jne 0x539765
mov dword [ebx + 0x20], 0
xor eax, eax
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
sub edi, dword [esp + 0xc4]
mov eax, 1
mov dword [esi + 0xc], edi
sub ebp, dword [esp + 0x94]
mov dword [esi + 0x10], ebp
mov dword [esi + 4], edi
mov dword [esi + 8], ebp
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0xa8]
cmp eax, 2
jne 0x538670
mov eax, 1
mov dword [esp + 0x94], eax
jmp 0x538679
mov eax, dword [esp + 0xb0]
cmp eax, 2
jne 0x53865e
mov eax, 1
mov dword [esp + 0xc4], eax
jmp 0x538667
mov byte [esp + 0xa0], al
mov ebx, dword [esp + 0xe4]
jmp 0x5385de
mov eax, dword [esi + 0x37bc]
cmp eax, 1
mov dword [esp + 0xa8], eax
jne 0x538588
xor al, al
mov edi, dword [esi + 0x37c0]
mov byte [esp + 0xa0], al
jmp 0x5385de
mov dword [ebx + edx*4 + 0x24], 0
mov ecx, dword [ebx]
jmp 0x538530
mov eax, 0xffffffe7
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, 0xffffffe7
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret