Function at 0x578aa0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x18], 0
mov eax, edx
mov dword [esp + 0x10], esi
push edi
mov dword [esp + 0x48], eax
cmp dword [esi + 0x40], 0
mov ebx, dword [esi]
mov dword [esp + 0x10], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x44], ebx
jne 0x5799dd
cmp byte [ebx + 0x1e], 0
jne 0x5799dd
call fcn.0058d560
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
je 0x5799dd
mov ecx, dword [edi + 0x40]
mov dword [esp + 0x34], 0xfff0bdc0
test ecx, ecx
je 0x578b44
mov eax, dword [esi]
mov dword [esp + 0x34], 0
mov edx, dword [eax + 4]
test edx, edx
jle 0x578b44
mov eax, dword [eax + 8]
add eax, 0xc
cmp dword [eax], ecx
je 0x578b44
inc dword [esp + 0x34]
add eax, 0x10
cmp dword [esp + 0x34], edx
jl 0x578b33
mov edx, edi
mov ecx, esi
call fcn.00590bd0
test eax, eax
jne 0x5799dd
push ecx
mov edx, edi
mov ecx, esi
call fcn.0058d500
add esp, 4
test eax, eax
jne 0x5799dd
mov ecx, dword [edi + 0xc]
shl ecx, 2
cmp byte [ebx + 0x1e], al
je 0x578b81
mov edi, dword [ebp + 0xc]
xor ebx, ebx
xor ecx, ecx
jmp 0x5799e8
cmp byte [ebx + 0xe2], 0
je 0x578bce
movzx eax, word [ebx + 0xe0]
cmp ecx, eax
jg 0x578bce
mov edx, dword [ebx + 0xec]
mov dword [esp + 0x10], edx
test edx, edx
je 0x578bce
mov eax, dword [edx]
mov dword [ebx + 0xec], eax
mov eax, dword [ebx + 0xe4]
inc eax
mov dword [ebx + 0xe4], eax
cmp eax, dword [ebx + 0xe8]
jle 0x578bc6
mov dword [ebx + 0xe8], eax
mov ecx, edx
mov dword [esp + 0x38], ecx
jmp 0x578bf3
push ecx
call fcn.005bbcf0
mov edx, eax
add esp, 4
mov dword [esp + 0x10], edx
test edx, edx
jne 0x578be5
mov byte [ebx + 0x1e], 1
mov ecx, edx
mov dword [esp + 0x38], ecx
test edx, edx
je 0x5799dd
xor eax, eax
cmp dword [edi + 0xc], eax
jle 0x578c0d
nop word [eax + eax]
mov dword [ecx + eax*4], 0xffffffff
inc eax
cmp eax, dword [edi + 0xc]
jl 0x578c00
mov edx, dword [esp + 0x48]
mov eax, dword [esi + 0x44]
mov dword [esp + 0x24], eax
mov dword [edx + 0x20], eax
mov ecx, dword [esi + 0x44]
inc ecx
mov dword [esi + 0x44], ecx
mov eax, dword [edi + 0x14]
test eax, eax
je 0x578c3b
nop dword [eax]
inc ecx
mov dword [esi + 0x44], ecx
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x578c30
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
movlpd qword [esp + 0x74], xmm0
movlpd qword [esp + 0x7c], xmm0
cmp dword [eax], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], edx
mov dword [esp + 0x28], 0
mov dword [esp + 0x3c], 0
jle 0x578dde
xor ebx, ebx
mov esi, eax
mov dword [esp + 0x40], ebx
nop word [eax + eax]
mov edx, dword [esi + 0xc]
lea ecx, [esp + 0x64]
mov edx, dword [edx + ebx]
call fcn.0059bd70
test eax, eax
jne 0x5799dd
mov eax, dword [esp + 0x18]
xor edi, edi
cmp edi, dword [eax + 0xc]
jge 0x578d71
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + ebx + 4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x58], eax
nop dword [eax]
mov esi, dword [eax]
mov edx, ecx
mov bl, byte [esi]
test bl, bl
je 0x578d01
mov al, bl
sub esi, ecx
nop
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x2cc740]
cmp al, byte [ecx + 0x2cc740]
jne 0x578d01
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x578ce0
movzx eax, bl
movzx ecx, byte [eax + 0x2cc740]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x2cc740]
sub ecx, eax
je 0x578d3b
mov ecx, dword [esp + 0x18]
inc edi
mov eax, dword [esp + 0x58]
add eax, 0x18
mov dword [esp + 0x58], eax
cmp edi, dword [ecx + 0xc]
mov ecx, dword [esp + 0x54]
jl 0x578cd0
mov ebx, dword [esp + 0x40]
mov esi, dword [ebp + 8]
jmp 0x578d68
mov ebx, dword [esp + 0x18]
mov esi, dword [ebp + 8]
cmp edi, dword [ebx + 8]
mov ebx, dword [esp + 0x40]
jne 0x578d5d
mov eax, dword [esi + 0xc]
mov dword [esp + 0x28], 1
mov eax, dword [ebx + eax]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
mov dword [ecx + edi*4], eax
mov eax, dword [esp + 0x18]
cmp edi, dword [eax + 0xc]
jl 0x578dba
mov esi, dword [esi + 0xc]
mov edx, 0x2cf6d4
mov edi, dword [esi + ebx + 4]
mov ecx, edi
call fcn.005b8fb0
test eax, eax
je 0x578da8
mov edx, 0x2cf6dc
mov ecx, edi
call fcn.005b8fb0
test eax, eax
je 0x578da8
mov edx, 0x2cf6e4
mov ecx, edi
call fcn.005b8fb0
test eax, eax
jne 0x578e12
mov eax, dword [esi + ebx]
mov esi, dword [ebp + 8]
mov dword [esp + 0x28], 1
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
add ebx, 0x14
inc eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], eax
cmp eax, dword [esi]
jl 0x578c90
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x14]
xor ecx, ecx
test eax, eax
je 0x578e92
nop dword [eax + eax]
mov eax, dword [eax + 0x20]
inc ecx
test eax, eax
jne 0x578df0
test ecx, ecx
jle 0x578e92
shl ecx, 2
cmp byte [ebx + 0x1e], al
je 0x578e2f
mov edi, dword [ebp + 0xc]
xor ecx, ecx
jmp 0x5799e4
mov ecx, dword [esp + 0x14]
push edi
push 0x2d0c6c
push ecx
call fcn.005b9110
mov edi, dword [ebp + 0xc]
add esp, 0xc
xor ecx, ecx
jmp 0x5799e4
cmp byte [ebx + 0xe2], 0
je 0x578e76
movzx eax, word [ebx + 0xe0]
cmp ecx, eax
jg 0x578e76
mov edx, dword [ebx + 0xec]
mov dword [esp + 0x1c], edx
test edx, edx
je 0x578e76
mov eax, dword [edx]
mov dword [ebx + 0xec], eax
mov eax, dword [ebx + 0xe4]
inc eax
mov dword [ebx + 0xe4], eax
cmp eax, dword [ebx + 0xe8]
jle 0x578e94
mov dword [ebx + 0xe8], eax
jmp 0x578e94
push ecx
call fcn.005bbcf0
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x578e94
mov byte [ebx + 0x1e], 1
jmp 0x5799dd
xor edx, edx
mov edi, dword [edi + 0x14]
test edi, edi
je 0x578ef6
mov ecx, dword [esp + 0x28]
mov eax, edx
mov dword [esp + 0x40], eax
test ecx, ecx
je 0x578eb1
inc dword [esi + 0x48]
mov ebx, dword [esi + 0x48]
jmp 0x578ee6
mov esi, dword [edi + 4]
xor ebx, ebx
xor edx, edx
test esi, esi
jle 0x578ee2
mov ecx, dword [edi + 8]
nop
mov esi, dword [esp + 0x10]
mov eax, dword [ecx]
cmp dword [esi + eax*4], ebx
mov esi, dword [edi + 4]
jge 0x578f74
inc edx
add ecx, 4
cmp edx, esi
jl 0x578ec0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
mov dword [eax], ebx
add eax, 4
mov edi, dword [edi + 0x20]
mov dword [esp + 0x40], eax
test edi, edi
jne 0x578ea5
mov esi, dword [esi + 0xc]
mov ebx, dword [esp + 0x14]
test esi, esi
jne 0x578f15
mov ecx, dword [ebx]
call fcn.005a8940
mov esi, eax
mov dword [ebx + 0xc], esi
test esi, esi
je 0x5799dd
cmp byte [ebx + 0x13], 0
jne 0x578f1f
mov byte [esi + 0x6d], 1
mov edi, dword [esp + 0x34]
mov ecx, ebx
mov edx, edi
call fcn.0058e3f0
mov eax, dword [ebx + 0x150]
mov edx, dword [esp + 0x18]
bts eax, edi
or byte [ebx + 0x158], 1
mov dword [ebx + 0x150], eax
test byte [edx + 0x22], 0x10
je 0x578f8b
push dword [ebp + 0xc]
mov ecx, ebx
push dword [esp + 0x14]
push dword [esp + 0x54]
push dword [ebp + 8]
push edx
mov edx, dword [esp + 0x5c]
call fcn.005784e0
add esp, 0x14
xor edi, edi
mov dword [esp + 0x48], edi
jmp 0x5799e0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
inc dword [esi + 0x48]
mov ebx, dword [esi + 0x48]
jmp 0x578ee6
mov ecx, dword [ebx + 0x48]
inc ecx
cmp dword [esp + 0x28], 0
mov dword [esp + 0x40], ecx
mov dword [ebx + 0x48], ecx
mov dword [esp + 0x30], ecx
je 0x578fa9
inc ecx
mov dword [esp + 0x40], ecx
mov dword [ebx + 0x48], ecx
mov edi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 0xc]
mov edx, edi
inc eax
add eax, ecx
lea ecx, [esp + 0x64]
mov dword [ebx + 0x48], eax
call fcn.0059bd70
test eax, eax
jne 0x5799e0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x578fe2
mov ecx, esi
call fcn.005a8760
test eax, eax
jne 0x57901a
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0xa
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edi, dword [ebp + 0xc]
mov ecx, ebx
mov edx, dword [esp + 0x48]
push 4
push 0
push edi
call fcn.00571ba0
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x5799e0
mov al, byte [ebx + 6]
mov edi, dword [esi + 0xc]
mov byte [esp + 0xf], al
cmp dword [esi + 0x10], edi
jg 0x579054
mov ecx, esi
call fcn.005a8760
test eax, eax
jne 0x57908c
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x3c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
cmp byte [esp + 0xf], 0
jne 0x5790ed
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x48]
inc eax
mov dword [ecx + 0x48], eax
mov edi, dword [esi + 0xc]
mov dword [esp + 0x5c], eax
cmp dword [esi + 0x10], edi
jg 0x5790b5
mov ecx, esi
call fcn.005a8760
test eax, eax
jne 0x5790ed
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x68
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov ecx, ebx
call fcn.00571590
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x14]
test byte [eax + 0xc], 0x80
je 0x579161
cmp dword [ebx + 0x1a4], 0
jne 0x579161
mov eax, dword [ebx + 0x48]
inc eax
mov dword [ebx + 0x48], eax
mov edi, dword [esi + 0xc]
mov dword [esp + 0x50], eax
cmp dword [esi + 0x10], edi
jg 0x579129
mov ecx, esi
call fcn.005a8760
test eax, eax
jne 0x579161
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x50]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
cmp byte [esp + 0xf], 0
mov edi, dword [esp + 0x18]
jne 0x579181
mov edx, dword [esp + 0x24]
mov ecx, ebx
push 0x27
push edi
push dword [esp + 0x3c]
call fcn.0058a010
add esp, 0xc
cmp dword [ebp + 0x10], 5
jne 0x5791e8
mov ecx, 1
mov dword [esp + 0x20], ecx
mov edi, dword [edi + 0x14]
mov dword [esp + 0x2c], edi
test edi, edi
je 0x57932c
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
test ecx, ecx
jne 0x5791bc
cmp dword [eax], ecx
jle 0x57930c
mov edx, edi
mov ecx, ebx
call fcn.0058e170
mov ebx, eax
mov eax, dword [edi + 0x14]
mov edi, dword [esi + 0xc]
mov dword [esp + 0x60], eax
cmp dword [esi + 0x10], edi
jg 0x57921d
mov ecx, esi
call fcn.005a8760
test eax, eax
je 0x57921d
mov edi, 1
jmp 0x579255
mov eax, dword [edi + 0x14]
xor ecx, ecx
mov dword [esp + 0x20], ecx
test eax, eax
je 0x579190
cmp byte [eax + 0x18], 5
je 0x57920b
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x5791f5
mov edi, dword [edi + 0x14]
mov dword [esp + 0x2c], edi
jmp 0x57919f
mov edi, dword [edi + 0x14]
mov ecx, 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], edi
jmp 0x57919f
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x60]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x34]
mov word [eax + ecx*4], 0x27
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, dword [esi + 0x14]
mov ecx, dword [esi]
test edx, edx
je 0x57929b
cmp byte [ecx + 0x1e], 0
jne 0x57929b
test edi, edi
jns 0x57926c
mov edi, dword [esi + 0xc]
dec edi
lea eax, [edi + edi*4]
push dword [edx + eax*4 + 0x10]
lea edi, [edx + eax*4]
movsx edx, byte [edi + 1]
call fcn.005a7ff0
mov ecx, dword [esp + 0x24]
add esp, 4
test ebx, ebx
jne 0x579292
mov dword [edi + 0x10], ebx
mov byte [edi + 1], bl
jmp 0x579308
mov dword [edi + 0x10], ebx
mov byte [edi + 1], 0xfa
jmp 0x579308
test ebx, ebx
je 0x579304
test ecx, ecx
je 0x5792e1
cmp ebx, dword [ecx + 0xf0]
jb 0x5792e1
cmp ebx, dword [ecx + 0xf4]
jae 0x5792e1
mov eax, dword [ecx + 0xec]
mov edx, dword [esp + 0x10]
mov dword [ebx], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], ebx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], edx
jmp 0x579308
push ebx
call fcn.005bb990
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], eax
jmp 0x579308
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
mov edi, dword [edi + 0x20]
add dword [esp + 0x58], 4
inc dword [esp + 0x54]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x2c], edi
test edi, edi
jne 0x5791b0
cmp byte [esp + 0xf], 0
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
je 0x5793fb
cmp eax, edi
jg 0x579353
mov ecx, esi
call fcn.005a8760
test eax, eax
je 0x579353
mov edi, 1
jmp 0x57938b
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x4a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov ebx, dword [esi + 0xc]
mov dword [esp + 0x34], ebx
cmp dword [esi + 0x10], ebx
jg 0x5793ac
mov ecx, esi
call fcn.005a8760
test eax, eax
je 0x5793ac
mov dword [esp + 0x34], 1
jmp 0x5793e4
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, dword [esi + 0xc]
mov ebx, dword [esp + 0x34]
cmp edx, edi
jle 0x579453
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
jmp 0x579453
mov ebx, edi
mov dword [esp + 0x34], ebx
cmp eax, ebx
jg 0x57941b
mov ecx, esi
call fcn.005a8760
test eax, eax
je 0x57941b
mov ebx, 1
mov dword [esp + 0x34], ebx
jmp 0x579453
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x69
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x579466
mov ecx, esi
call fcn.005a8760
test eax, eax
jne 0x57949a
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x33
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
cmp dword [esp + 0x28], 0
je 0x579521
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x4c]
push edi
call fcn.005965d0
add esp, 4
cmp eax, edi
je 0x5794d6
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x5794d6
push edi
push eax
mov edx, 0xf
call fcn.005a85a0
add esp, 8
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x5794e9
mov ecx, esi
call fcn.005a8760
test eax, eax
jne 0x579521
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x40]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov eax, dword [esp + 0x18]
xor edi, edi
cmp dword [eax + 0xc], edi
jle 0x57964a
cmp edi, dword [eax + 8]
jne 0x579589
mov ebx, dword [esi + 0xc]
cmp dword [esi + 0x10], ebx
jg 0x57954c
mov ecx, esi
call fcn.005a8760
test eax, eax
jne 0x579638
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x3c]
mov word [eax + ecx*4], 0xa
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
jmp 0x579638
mov eax, dword [esp + 0x38]
mov eax, dword [eax + edi*4]
test eax, eax
jns 0x5795fd
mov ebx, dword [esi + 0xc]
cmp dword [esi + 0x10], ebx
jg 0x5795a7
mov ecx, esi
call fcn.005a8760
test eax, eax
jne 0x5795ea
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 0xc], edx
push edx
mov edx, dword [esp + 0x1c]
mov word [eax + ecx*4], 0x1c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
push edi
mov byte [esi + 0x6e], 0
call fcn.00579ad0
jmp 0x579635
mov edx, dword [esp + 0x3c]
mov ecx, esi
push edx
mov edx, dword [esp + 0x1c]
push edi
call fcn.00579ad0
jmp 0x579635
mov ebx, dword [esp + 0x3c]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
push ebx
mov eax, dword [eax + 0xc]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
call fcn.005965d0
add esp, 4
cmp eax, ebx
je 0x579638
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x579638
push ebx
push eax
mov edx, 0xf
call fcn.005a85a0
add esp, 8
mov eax, dword [esp + 0x18]
inc edi
inc dword [esp + 0x3c]
cmp edi, dword [eax + 0xc]
jl 0x579530
mov ebx, dword [esp + 0x34]
xor eax, eax
cmp dword [esp + 0x28], eax
mov edx, dword [esp + 0x18]
cmovne eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
push 0
push ebx
push dword [ebp + 0x10]
push 1
push eax
push dword [esp + 0x30]
push dword [esp + 0x58]
push dword [esp + 0x40]
call fcn.00587d70
mov edi, dword [esi + 0xc]
add esp, 0x20
cmp dword [esi + 0x10], edi
jg 0x579698
mov ecx, esi
call fcn.005a8760
test eax, eax
je 0x579698
mov edi, 1
jmp 0x5796d0
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x33
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
push dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
push dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
call fcn.0058ce20
add esp, 8
cmp dword [esp + 0x28], 0
je 0x579742
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x60], ecx
cmp dword [esi + 0x10], ecx
jg 0x57970a
mov ecx, esi
call fcn.005a8760
test eax, eax
jne 0x579742
mov ecx, dword [esp + 0x60]
mov eax, dword [esi + 0x14]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov word [eax + ecx*4], 0x38
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, dword [esi + 0xc]
cmp edx, edi
jle 0x579753
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edi, dword [esp + 0x14]
mov ecx, edi
mov edx, dword [esp + 0x18]
push 0
push 0
push 1
push dword [esp + 0x28]
push dword [esp + 0x50]
push dword [esp + 0x38]
call fcn.00587b00
mov eax, dword [esp + 0x5c]
add esp, 0x18
test byte [eax + 0xc], 0x80
je 0x5797d5
cmp dword [edi + 0x1a4], 0
jne 0x5797d5
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x57979d
mov ecx, esi
call fcn.005a8760
test eax, eax
jne 0x5797d5
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x50]
mov word [eax + ecx*4], 0x14
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x5797e8
mov ecx, esi
call fcn.005a8760
test eax, eax
jne 0x57981c
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, dword [esi + 0xc]
cmp edx, ebx
jle 0x57982d
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
mov dword [eax + ecx*4 + 8], edx
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x14]
test ebx, ebx
je 0x5798c3
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], edx
test ecx, ecx
jne 0x579859
cmp dword [edx], ecx
jle 0x5798b0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x579870
mov ecx, esi
call fcn.005a8760
mov edx, dword [esp + 0x5c]
test eax, eax
jne 0x5798a8
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edi, dword [esp + 0x4c]
mov word [eax + ecx*4], 0x2a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x4c]
mov ebx, dword [ebx + 0x20]
add edx, 4
inc eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x4c], eax
test ebx, ebx
jne 0x579851
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x5798d6
mov ecx, esi
call fcn.005a8760
test eax, eax
jne 0x57990e
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov word [eax + ecx*4], 0x2a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov eax, dword [esp + 0x44]
test byte [eax + 0xc], 0x80
je 0x5799dd
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x1a4], 0
jne 0x5799dd
cmp byte [eax + 0x13], 0
jne 0x5799dd
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x57994a
mov ecx, esi
call fcn.005a8760
test eax, eax
jne 0x579982
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x50]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, 1
mov ecx, esi
call fcn.005a71d0
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x5799dd
mov edi, dword [esi + 0x28]
xor esi, esi
mov eax, dword [edi + 0x10]
test eax, eax
je 0x5799ab
mov eax, dword [eax + 0x48]
test eax, eax
js 0x5799be
jmp 0x5799b0
mov eax, 0x3b9aca00
cmp byte [esi + 0x2d0c80], 0
je 0x5799be
inc esi
cmp esi, eax
jle 0x5799b0
mov ecx, edi
call fcn.005a9b80
mov dword [edi + 0x14], 0x2d0c80
mov dword [edi + 0x20], 0
mov dword [edi + 0x18], esi
mov dword [edi + 0x1c], 0x1030a02
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x44]
test esi, esi
je 0x579a1a
test ecx, ecx
je 0x579a1a
cmp ecx, dword [esi + 0xf0]
jb 0x579a1a
cmp ecx, dword [esi + 0xf4]
jae 0x579a1a
mov eax, dword [esi + 0xec]
mov dword [ecx], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], ecx
jmp 0x579a27
push ecx
call fcn.005bb990
add esp, 4
test esi, esi
je 0x579a51
test ebx, ebx
je 0x579a51
cmp ebx, dword [esi + 0xf0]
jb 0x579a51
cmp ebx, dword [esi + 0xf4]
jae 0x579a51
mov eax, dword [esi + 0xec]
mov dword [ebx], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], ebx
jmp 0x579a5a
push ebx
call fcn.005bb990
add esp, 4
mov edx, dword [esp + 0x48]
mov ecx, esi
call fcn.0058eb40
mov edx, dword [ebp + 8]
mov ecx, esi
call fcn.00599410
test edi, edi
je 0x579abb
mov edx, edi
mov ecx, esi
call fcn.0059abf0
cmp word [edi + 2], 0
jl 0x579abb
test esi, esi
je 0x579ab2
cmp edi, dword [esi + 0xf0]
jb 0x579ab2
cmp edi, dword [esi + 0xf4]
jae 0x579ab2
mov eax, dword [esi + 0xec]
mov dword [edi], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
call fcn.005bb990
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret