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

Disassembly:
sub esp, 0x58
push ebx
mov ebx, dword [esp + 0x60]
xor ecx, ecx
push esi
xor eax, eax
mov dword [esp + 0x48], ecx
mov byte [esp + 0xa], 0
mov esi, dword [ebx + 8]
mov byte [esp + 0xb], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x40], eax
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x30], esi
mov dword [esp + 0x4c], ecx
cmp dword [esi + 0x70], ecx
jg 0x572d6a
push eax
push eax
push eax
push 0xf
push esi
call fcn.00580cd0
add esp, 0x14
mov dword [esp + 0x4c], eax
jmp 0x572d9d
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xf
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 ecx, dword [esp + 0x74]
xorps xmm0, xmm0
push ebp
mov ebp, dword [esp + 0x6c]
push edi
movlpd qword [esp + 0x60], xmm0
mov dword [esp + 0x18], 0
mov eax, dword [ebp]
mov edx, dword [eax + 4]
movzx eax, byte [ecx + 0x3c]
mov ecx, dword [ecx + 0x50]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x64]
lea eax, [eax + eax*8]
mov dword [esp + 0x3c], edx
lea eax, [eax + 1]
lea ebp, [edx + eax*8]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x20], ebp
mov edi, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
shl eax, 4
add eax, edi
mov dword [esp + 0x44], eax
cmp edi, eax
jae 0x5730d6
mov eax, dword [esp + 0x60]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], eax
nop
test byte [edi + 0xa], 2
mov ebp, dword [edi]
jne 0x572f86
mov eax, dword [esp + 0x7c]
push 0
movzx eax, byte [eax + 0x3c]
push eax
push edx
push ebp
call fcn.005aff20
add esp, 0x10
test eax, eax
je 0x572f82
test ebp, ebp
je 0x572e50
push 0
push 0
push ebp
push dword [ebx]
call fcn.005788c0
add esp, 0x10
mov ebp, eax
jmp 0x572e52
xor ebp, ebp
mov edx, dword [esp + 0x1c]
mov ecx, dword [ebx]
mov dword [esp + 0x4c], ecx
test edx, edx
jne 0x572e69
mov dword [esp + 0x1c], ebp
jmp 0x572f82
test ebp, ebp
je 0x572f7e
mov eax, dword [ebp + 4]
or eax, dword [edx + 4]
and eax, 0x20000003
cmp eax, 0x20000000
jne 0x572ed8
cmp byte [ebx + 0xdc], 2
jae 0x572ed8
push edx
push 0x5af200
push ebx
call fcn.005bfac0
push ebp
push 0x5af200
push ebx
call fcn.005bfac0
push 0
lea eax, [esp + 0x7c]
mov dword [esp + 0x7c], 0x6a5630
push eax
push 0x9b
push dword [esp + 0x70]
mov dword [esp + 0x8c], 1
call fcn.005abc10
add esp, 0x28
mov dword [esp + 0x1c], eax
jmp 0x572f82
push 0
push 0x34
push ecx
call fcn.005a9460
add esp, 0xc
mov dword [esp + 0x2c], eax
test eax, eax
je 0x572f63
push 0x34
push 0
push eax
call fcn.006213c0
mov edx, dword [esp + 0x38]
or eax, 0xffffffff
add esp, 0xc
mov word [edx + 0x22], ax
mov eax, dword [esp + 0x1c]
mov dword [edx + 0x10], ebp
mov byte [edx], 0x2c
mov ecx, dword [ebp + 4]
and ecx, 0x400208
or ecx, dword [edx + 4]
mov dword [edx + 4], ecx
mov ebp, dword [ebp + 0x18]
inc ebp
mov dword [edx + 0x18], ebp
mov dword [edx + 0xc], eax
mov eax, dword [eax + 4]
and eax, 0x400208
or eax, ecx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x18]
cmp eax, ebp
jl 0x572f46
lea ebp, [eax + 1]
mov dword [edx + 0x18], ebp
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
cmp ebp, eax
jle 0x572f7e
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.005ab4e0
add esp, 0xc
jmp 0x572f7a
mov eax, dword [esp + 0x1c]
push eax
push dword [ebx]
call fcn.005af220
push ebp
push dword [ebx]
call fcn.005af220
add esp, 0x10
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
mov eax, dword [edi + 0x14]
cmp eax, dword [ebp + 0x2c]
jne 0x5730bf
test byte [edi + 0xc], 0x82
je 0x5730bf
test byte [ebp + 0x24], 0x58
je 0x572fb8
push ebp
push edi
call fcn.00572cf0
add esp, 8
test eax, eax
je 0x5730bb
mov ecx, dword [esp + 0x74]
mov eax, dword [edi + 0x24]
and ecx, dword [edi + 0x20]
and eax, dword [esp + 0x78]
or ecx, eax
jne 0x5730bb
mov ecx, dword [edi + 0x18]
test ecx, ecx
js 0x5730bb
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 8]
mov byte [esp + 0x40], al
push dword [esp + 0x40]
push dword [edi]
call fcn.005b8d20
add esp, 8
test eax, eax
je 0x5730bb
mov edx, dword [edi + 0x18]
xor ebp, ebp
cmp edx, 0x40
jl 0x573013
mov dword [esp + 0x2c], SysStringLen
jmp 0x57302c
mov eax, edx
xor ecx, ecx
bts ebp, eax
cmp eax, 0x20
cmovae ecx, ebp
xor ebp, ecx
cmp eax, 0x40
cmovae ecx, ebp
mov dword [esp + 0x2c], ecx
cmp byte [esp + 0x12], 0
jne 0x573058
mov ecx, dword [esp + 0x34]
add edx, edx
mov eax, dword [ecx + 4]
push dword [eax + edx*8]
push dword [ecx]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.005536b0
add esp, 0x10
mov byte [esp + 0x12], 1
mov eax, dword [esp + 0x2c]
mov ecx, ebp
and ecx, dword [esp + 0x28]
and eax, dword [esp + 0x14]
or ecx, eax
jne 0x5730b7
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
inc eax
push eax
push ecx
push dword [ebx]
mov dword [esp + 0x58], eax
call fcn.005f8f20
add esp, 0xc
test eax, eax
jne 0x573a09
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
or dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov dword [eax + ecx*4], edi
mov ecx, dword [esp + 0x14]
or ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
jmp 0x5730bf
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
add edi, 0x30
cmp edi, dword [esp + 0x44]
jb 0x572e10
mov edx, dword [esp + 0x28]
jmp 0x5730da
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x30]
not edx
mov eax, dword [esp + 0x18]
not ecx
movzx eax, ax
mov dword [esp + 0x28], edx
mov word [edi + 0x30], ax
mov word [edi + 0x18], ax
mov eax, dword [esp + 0x34]
mov dword [edi + 0x2c], 0x4241
mov dword [esp + 0x14], ecx
cmp byte [eax + 0x2b], 2
je 0x57311e
and edx, dword [ebp + 0x38]
or ecx, 0x80000000
and ecx, dword [ebp + 0x3c]
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], ecx
movzx eax, word [eax + 0x22]
mov ecx, 0x3f
xor edi, edi
cmp cx, ax
jge 0x573136
mov ebp, ecx
mov dword [esp + 0x24], ebp
jmp 0x573141
movsx ebp, ax
mov dword [esp + 0x24], ebp
test ebp, ebp
jle 0x573180
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
nop dword [eax]
xor edx, edx
xor ecx, ecx
mov eax, edi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, ebx
and ecx, esi
or edx, ecx
je 0x573173
inc dword [esp + 0x18]
inc edi
cmp edi, ebp
jl 0x573150
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x3c], 0
jg 0x5731a7
jl 0x573192
cmp dword [eax + 0x38], 0
jae 0x5731a7
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
add ecx, 0xffffffc1
movsx eax, word [eax + 0x22]
add ecx, eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x18]
mov edi, dword [ebx]
movzx eax, ax
inc eax
movzx eax, ax
movsx ebp, ax
mov dword [esp + 0x3c], eax
lea eax, [ebp*4 + 9]
add eax, ebp
lea ecx, [ebp*4 + 7]
and eax, 0xfffffff8
and ecx, 0xfffffff8
add eax, 0x48
mov dword [esp + 0x40], ecx
add eax, ecx
mov dword [esp + 0x4c], eax
cdq
push edx
push eax
test edi, edi
je 0x5731f6
push edi
call fcn.005a9460
mov edi, eax
add esp, 0xc
mov dword [esp + 0x2c], edi
jmp 0x573204
call fcn.005bc3f0
add esp, 8
mov dword [esp + 0x2c], eax
mov edi, eax
test edi, edi
je 0x573a09
push dword [esp + 0x4c]
push 0
push edi
call fcn.006213c0
mov ecx, dword [esp + 0x24]
lea eax, [edi + 0x48]
mov dword [edi + 0x20], eax
add esp, 0xc
add eax, dword [esp + 0x40]
xorps xmm0, xmm0
mov dword [edi + 8], eax
movlpd qword [esp + 0x60], xmm0
lea eax, [eax + ebp*2]
add eax, 2
mov dword [edi + 4], eax
lea eax, [eax + ebp*2]
mov ebp, dword [esp + 0x70]
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov word [edi + 0x34], ax
movzx eax, cx
mov word [edi + 0x32], ax
mov eax, dword [esp + 0x30]
mov dword [eax + 0x20], edi
mov eax, dword [esp + 0x34]
mov dword [edi], str.auto_index
mov dword [edi + 0xc], eax
xor edi, edi
mov ebp, dword [ebp + 0x18]
cmp ebp, dword [esp + 0x44]
jae 0x5733cf
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x24], eax
nop
mov edx, dword [esp + 0x20]
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x40], esi
cmp eax, dword [edx + 0x2c]
jne 0x5733ba
test byte [ebp + 0xc], 0x82
je 0x5733ba
test byte [edx + 0x24], 0x58
je 0x5732ca
push edx
push ebp
call fcn.00572cf0
add esp, 8
test eax, eax
je 0x5733ba
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x74]
mov eax, dword [ebp + 0x24]
and ecx, dword [ebp + 0x20]
and eax, dword [esp + 0x78]
or ecx, eax
jne 0x5733ba
mov ecx, dword [ebp + 0x18]
test ecx, ecx
js 0x5733ba
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 8]
mov byte [esp + 0x58], al
push dword [esp + 0x58]
push dword [ebp]
call fcn.005b8d20
add esp, 8
test eax, eax
je 0x5733ba
mov ecx, dword [ebp + 0x18]
xor edx, edx
movzx eax, cx
mov dword [esp + 0x5c], eax
cmp ecx, 0x40
jl 0x57332a
mov eax, SysReAllocString
jmp 0x57333d
xor eax, eax
bts edx, ecx
cmp ecx, 0x20
cmovae eax, edx
xor edx, eax
cmp ecx, 0x40
cmovae eax, edx
mov esi, dword [esp + 0x40]
mov ecx, edx
and ecx, dword [esp + 0x24]
mov dword [esp + 0x4c], eax
and eax, dword [esp + 0x3c]
or ecx, eax
jne 0x5733ba
mov eax, dword [esp + 0x3c]
or eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x2c]
mov ecx, dword [ebp]
or dword [esp + 0x24], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 4]
push ecx
push ebx
mov dword [esp + 0x68], ecx
mov word [eax + edi*2], dx
call fcn.005aefe0
add esp, 8
test eax, eax
je 0x57338b
mov ecx, dword [eax]
jmp 0x573390
mov ecx, str.BINARY
mov eax, dword [esi + 0x20]
mov dword [eax + edi*4], ecx
inc edi
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x40]
mov esi, ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x5733ba
push eax
call fcn.005abb40
add esp, 4
cmp al, 0x42
je 0x5733ba
mov byte [esp + 0x13], 1
add ebp, 0x30
cmp ebp, dword [esp + 0x44]
jb 0x573290
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x38]
xor ebp, ebp
cmp dword [esp + 0x24], ebp
jle 0x573422
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
nop
xor edx, edx
xor ecx, ecx
mov eax, ebp
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x28]
and ecx, dword [esp + 0x14]
or edx, ecx
je 0x573415
mov eax, dword [ebx + 4]
mov word [eax + edi*2], bp
mov eax, dword [ebx + 0x20]
mov dword [eax + edi*4], str.BINARY
inc edi
inc ebp
cmp ebp, esi
jl 0x5733e0
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x3c], 0
jg 0x57346d
jl 0x573434
cmp dword [eax + 0x38], 0
jae 0x57346d
mov edx, dword [esp + 0x34]
mov eax, 0x3f
mov ebp, dword [esp + 0x2c]
cmp ax, word [edx + 0x22]
jge 0x573471
mov ecx, eax
nop dword [eax]
mov eax, dword [ebp + 4]
mov word [eax + edi*2], cx
inc ecx
mov eax, dword [ebp + 0x20]
mov dword [eax + edi*4], str.BINARY
inc edi
movsx eax, word [edx + 0x22]
cmp ecx, eax
jl 0x573450
jmp 0x573471
mov ebp, dword [esp + 0x2c]
mov eax, dword [ebp + 4]
or ecx, 0xffffffff
mov edx, dword [esp + 0x18]
inc edx
mov word [eax + edi*2], cx
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x7c]
mov dword [eax + edi*4], str.BINARY
mov eax, dword [ebx + 0x28]
mov dword [ecx + 8], eax
inc dword [ebx + 0x28]
mov eax, dword [ecx + 8]
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x60], eax
cmp dword [esi + 0x70], ecx
jg 0x5734b7
push 0
push edx
push eax
push 0x74
push esi
call fcn.00580cd0
add esp, 0x14
jmp 0x5734ea
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x60]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x38]
mov dword [eax + ecx*4], 0x74
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 8]
push ebp
push ebx
mov dword [esp + 0x68], eax
call fcn.005bb2b0
mov edx, eax
add esp, 8
test edx, edx
je 0x57353c
mov ebp, dword [esp + 0x60]
mov eax, dword [ebp]
cmp byte [eax + 0x57], 0
je 0x57352a
cmp dword [eax + 0x210], 0
jne 0x57353c
add dword [edx], 0xffffffff
jne 0x57353c
push edx
push dword [edx + 0xc]
call fcn.005a9580
add esp, 8
jmp 0x57353c
mov eax, dword [ebp + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf8
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [ebx]
test dword [eax + 0x50], 0x80000
jne 0x5735b8
cmp byte [esp + 0x13], 0
je 0x5735b8
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x7c]
push ebp
push dword [eax]
push ebx
call fcn.005e5710
mov edx, dword [ebx + 0x2c]
add esp, 0xc
inc edx
mov dword [ebx + 0x2c], edx
mov dword [ebp + 0x34], edx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x573589
push 0
push edx
push 0x2710
push 0x4d
push esi
call fcn.00580cd0
add esp, 0x14
jmp 0x5735b8
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x4d
mov dword [eax + ecx*4 + 4], 0x2710
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebp, dword [esp + 0x20]
test byte [ebp + 0x28], 0x20
je 0x5736bb
mov ecx, dword [esi + 0x6c]
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x70], edx
mov dword [esp + 0x48], ecx
cmp dword [esi + 0x70], ecx
jg 0x5735f7
push 0
push 0
push 0
push 0x47
push esi
call fcn.00580cd0
mov edx, dword [esp + 0x84]
add esp, 0x14
mov dword [esp + 0x48], eax
jmp 0x57362e
mov ebx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x47
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 ecx, dword [esi + 0x6c]
mov ebp, dword [ebp + 0x18]
cmp dword [esi + 0x70], ecx
jg 0x573651
push ebp
push 0
push edx
push 0xb
push esi
call fcn.00580cd0
mov edx, dword [esp + 0x84]
add esp, 0x14
jmp 0x573680
mov ebx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], ebp
mov dword [eax + ecx*4 + 0x10], 0
mov ebp, dword [esi + 0x6c]
cmp dword [esi + 0x70], ebp
jg 0x57369c
push 0
push 0
push edx
push 0xc
push esi
call fcn.00580cd0
add esp, 0x14
mov ebp, eax
jmp 0x573717
mov ebx, dword [esp + 0x6c]
lea eax, [ebp + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ebp*4]
mov eax, dword [esi + 0x68]
add ecx, ebp
mov dword [eax + ecx*4], 0xc
jmp 0x5736fb
mov eax, dword [esp + 0x7c]
mov ebp, dword [esi + 0x6c]
mov edx, dword [eax + 4]
cmp dword [esi + 0x70], ebp
jg 0x5736de
push 0
push 0
push edx
push 0x24
push esi
call fcn.00580cd0
add esp, 0x14
mov ebp, eax
jmp 0x573717
lea eax, [ebp + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ebp*4]
mov eax, dword [esi + 0x68]
add ecx, ebp
mov esi, dword [esp + 0x38]
mov dword [eax + ecx*4], 0x24
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x573741
dec dword [ebx + 0x38]
mov ecx, dword [ebx + 0x38]
push 0x10
push ecx
push eax
push ebx
mov dword [esp + 0x60], ecx
call fcn.005af530
mov ecx, dword [esp + 0x40]
add esp, 0x10
or dword [ecx + 0x2c], 0x20000
mov al, byte [ebx + 0x13]
test al, al
jne 0x573750
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x57375f
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0xa4]
push 0
push 0
push 0
push 0
push eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x90]
push dword [eax + 4]
push dword [esp + 0x44]
push ebx
call fcn.005b6e60
mov edx, dword [esp + 0x9c]
add esp, 0x20
mov dword [esp + 0x44], eax
mov edx, dword [edx + 0x34]
test edx, edx
je 0x5737f7
mov ecx, dword [esp + 0x30]
movzx ecx, word [ecx + 0x18]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x5737c4
push dword [esp + 0x4c]
push eax
push 0
push edx
push 0xb7
push esi
call fcn.005673e0
add esp, 0x18
jmp 0x5737f7
mov ebx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0xfdb7
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], edx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esi + 0x6c]
mov eax, dword [eax + 8]
mov dword [esp + 0x60], eax
cmp dword [esi + 0x70], ecx
jg 0x573822
mov edx, dword [esp + 0x70]
push 0
push edx
push eax
push 0x8a
push esi
call fcn.00580cd0
add esp, 0x14
jmp 0x573855
mov edx, dword [esp + 0x60]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x70]
mov dword [eax + ecx*4], 0x8a
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x57386c
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
cmp dword [esp + 0x1c], 0
je 0x57389a
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x50]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x573891
push edx
push esi
push ecx
call fcn.00597740
add esp, 0xc
jmp 0x57389a
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x20]
test byte [eax + 0x28], 0x20
je 0x57393e
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x5738b7
mov ecx, 0x6ebf90
jmp 0x5738c4
mov eax, dword [esp + 0x48]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x44]
add eax, edi
mov edi, dword [esp + 0x20]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x7c]
push dword [eax + 8]
push dword [edi + 0x20]
push dword [eax + 4]
push ebp
push ebx
call fcn.005eb260
mov ecx, dword [esi + 0x6c]
add esp, 0x14
cmp dword [esi + 0x70], ecx
jg 0x573909
push 0
push ebp
push 0
push 9
push esi
call fcn.00580cd0
add esp, 0x14
and dword [edi + 0x28], 0xffffffdf
jmp 0x5739a7
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
and dword [edi + 0x28], 0xffffffdf
jmp 0x5739a7
mov eax, dword [esp + 0x7c]
lea edx, [ebp + 1]
mov ecx, dword [esi + 0x6c]
mov edi, dword [eax + 4]
cmp dword [esi + 0x70], ecx
jg 0x573961
push 0
push edx
push edi
push 0x27
push esi
call fcn.00580cd0
add esp, 0x14
jmp 0x573990
mov ebx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x27
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x5739a7
lea ecx, [eax + eax*4]
mov edx, 3
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x5739b9
mov eax, 0x6ebf90
jmp 0x5739c8
mov eax, dword [esi + 0x68]
lea ecx, [ebp*4]
add ecx, ebp
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x70]
mov dword [eax + 8], edx
test ecx, ecx
je 0x5739e7
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x5739e7
movzx eax, al
mov dword [ebx + eax*4 + 0xa4], ecx
inc byte [ebx + 0x13]
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x5739f9
mov eax, 0x6ebf90
jmp 0x573a06
mov eax, dword [esp + 0x54]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x1c]
pop edi
pop ebp
test eax, eax
je 0x573a1e
push eax
push dword [ebx]
call fcn.005af220
add esp, 8
pop esi
pop ebx
add esp, 0x58
ret