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

Disassembly:
sub esp, 0x6c
mov ecx, dword [esp + 0x70]
xorps xmm0, xmm0
mov eax, dword [esp + 0x7c]
movlpd qword [esp + 0x44], xmm0
mov dword [esp + 0x4c], 0
mov edx, dword [ecx]
mov dword [esp], edx
push ebx
push esi
mov esi, dword [ecx + 8]
mov dword [esp + 0x1c], esi
push edi
test eax, eax
je 0x5e134d
cmp dword [eax], 0x40
jl 0x5e134d
mov eax, dword [esp + 0x94]
mov dword [esp + 0x88], 0
and eax, 0xfeff
jmp 0x5e1354
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x80]
mov dword [esp + 0x10], eax
mov ebx, dword [edi]
mov dword [esp + 0x14], ebx
cmp ebx, 0x40
jle 0x5e1383
push 0x40
push str.at_most__d_tables_in_a_join
push ecx
call fcn.005ab4e0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x6c
ret
mov ebx, 0x358
test al, 0x20
je 0x5e13d7
mov dword [esp + 0x14], 1
mov eax, 1
lea edi, [eax + eax*2]
shl edi, 5
push ebp
lea eax, [ebx + 0x50]
push 0
push eax
push edx
call fcn.005a9460
mov ebp, eax
add esp, 0xc
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x57], 0
je 0x5e13f7
test ebp, ebp
je 0x5e2261
push ebp
push eax
call fcn.005a9350
add esp, 8
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x6c
ret
mov ecx, dword [esp + 0x14]
mov eax, ecx
cmp ecx, 1
jle 0x5e1399
lea edi, [ecx + ecx*2]
mov dword [esp + 0x14], ecx
shl edi, 5
lea ebx, [edi + 0x2ff]
and ebx, 0xfffffff8
jmp 0x5e139f
mov ecx, dword [esp + 0x80]
xorps xmm0, xmm0
mov eax, dword [esp + 0x84]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x8c]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x90]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x18]
mov dword [ebp], ecx
mov dword [ebp + 0x18], 0xffffffff
mov dword [ebp + 0x14], 0xffffffff
mov byte [ebp + 0x2c], al
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x14]
mov word [ebp + 0x28], ax
mov eax, dword [esp + 0x9c]
mov word [ebp + 0x2a], ax
movsx eax, word [ecx + 0x9c]
mov dword [ebp + 0x24], eax
mov eax, dword [esp + 0x94]
mov dword [ebp + 0x10], eax
lea eax, [edi + 0x50]
push eax
movups xmmword [ebp + 0x2d], xmm0
lea eax, [ebp + 0x2f8]
movups xmmword [ebp + 0x3d], xmm0
push 0
mov word [ebp + 0x4d], 0
push eax
mov byte [ebp + 0x4f], 0
call fcn.006213c0
mov dword [ebp + 0x1f4], 0
lea edx, [ebp + 0x50]
lea ecx, [ebx + ebp]
mov dword [ebp + 0x1f8], 0xffffff9d
mov dword [esp + 0x54], ebp
lea eax, [ecx + 0x40]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ecx
mov dword [ecx + 0x38], eax
xor eax, eax
mov word [ecx + 0x30], ax
mov eax, 3
mov word [ecx + 0x34], ax
lea eax, [edx + 0x20]
mov dword [ecx + 0x2c], 0
push 0x2c
push dword [esp + 0x98]
mov dword [edx], ebp
push edx
mov byte [edx + 9], 0
mov dword [edx + 4], 0
mov dword [edx + 0xc], 0
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], 8
mov dword [edx + 0x18], eax
call fcn.005e66d0
add esp, 0x18
cmp dword [esp + 0x18], 0
jne 0x5e16e1
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5e1526
mov al, byte [eax]
mov byte [ebp + 0x2d], al
test dword [esp + 0x14], 0x100
je 0x5e153e
mov eax, dword [esp + 0x10]
test byte [eax + 0x50], 0x10
jne 0x5e153e
mov byte [ebp + 0x2f], 1
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x5e1565
test dword [eax + 4], 0x400
jne 0x5e1565
mov ecx, dword [esp + 0x80]
push str.SCAN_CONSTANT_ROW
push 0
push ecx
call fcn.005db940
add esp, 0xc
mov eax, dword [esp + 0x84]
mov edi, dword [ebp + 0x5c]
lea ebx, [ebp + 0x50]
sub edi, 1
js 0x5e158e
push edi
push ebx
push eax
call fcn.00576460
mov eax, dword [esp + 0x90]
add esp, 0xc
sub edi, 1
jns 0x5e1577
mov eax, dword [esp + 0x94]
test eax, eax
je 0x5e15ac
cmp dword [eax + 0x3c], 0
je 0x5e15ac
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.005e1210
add esp, 8
mov edi, dword [esp + 0x80]
cmp dword [edi + 0x24], 0
jne 0x5e2242
mov eax, dword [esp + 0x4c]
xor edx, edx
mov dword [esp + 0x2c], edx
cmp dword [eax + 0x14], edx
jle 0x5e16a8
xor ecx, ecx
mov esi, edi
mov dword [esp + 0x28], ecx
nop dword [eax + eax]
mov eax, dword [esp + 0x4c]
mov edi, dword [eax + 0x18]
add edi, ecx
test byte [edi + 0xa], 2
jne 0x5e1684
mov eax, dword [edi + 0x28]
or eax, dword [edi + 0x2c]
mov ebx, dword [edi]
jne 0x5e1684
cmp dword [esp + 0x18], eax
je 0x5e1655
mov dword [esp + 0x78], eax
xorps xmm0, xmm0
movq qword [esp + 0x70], xmm0
mov eax, 1
mov word [esp + 0x74], ax
movups xmmword [esp + 0x60], xmm0
mov dword [esp + 0x64], 0x579a80
mov dword [esp + 0x68], 0x5cbb30
test ebx, ebx
je 0x5e1655
lea eax, [esp + 0x60]
push ebx
push eax
call fcn.005e0f60
mov ecx, dword [esp + 0x30]
add esp, 8
cmp word [esp + 0x74], 0
mov edx, dword [esp + 0x2c]
je 0x5e1684
test byte [ebx + 4], 2
je 0x5e1668
mov eax, dword [esp + 0x84]
test byte [eax + 0x2c], 0x40
jne 0x5e1684
push 0x10
push dword [ebp + 0x20]
push ebx
push esi
call fcn.005af530
mov ecx, dword [esp + 0x38]
add esp, 0x10
or word [edi + 0xa], 4
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x4c]
inc edx
add ecx, 0x30
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
cmp edx, dword [eax + 0x14]
jl 0x5e15e0
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x80]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x90]
test ecx, 0x100
je 0x5e1764
mov eax, dword [esp + 0x10]
test byte [eax + 0x50], 0x10
je 0x5e172f
and ecx, 0xfeff
mov dword [esp + 0x14], ecx
mov ecx, 0xfeff
and word [ebp + 0x28], cx
jmp 0x5e1764
mov edi, dword [esp + 0x84]
lea esi, [ebp + 0x50]
xor ebx, ebx
add edi, 8
mov ecx, dword [ebp + 0x1f4]
mov eax, dword [edi + 0x2c]
push esi
push edi
push dword [esp + 0x88]
mov dword [ebp + ecx*4 + 0x1f8], eax
inc dword [ebp + 0x1f4]
call fcn.005e6740
mov eax, dword [esp + 0x90]
inc ebx
add esp, 0xc
add edi, 0x48
cmp ebx, dword [eax]
jl 0x5e16f0
mov esi, dword [esp + 0x24]
jmp 0x5e156c
push ebx
lea eax, [ebp + 0x50]
push eax
push dword [esp + 0x8c]
push edi
call fcn.005826f0
add esp, 0x10
test eax, eax
je 0x5e174e
mov byte [ebp + 0x2f], 1
jmp 0x5e1764
cmp dword [esp + 0x8c], 0
jne 0x5e1764
mov eax, 0x80
mov dword [ebp + 8], ebx
or word [ebp + 0x28], ax
cmp dword [esp + 0x18], 1
jne 0x5e177c
lea eax, [esp + 0x48]
push eax
call fcn.005faf70
add esp, 4
test eax, eax
jne 0x5e17e6
lea eax, [esp + 0x48]
push eax
call fcn.005f6560
add esp, 4
test eax, eax
jne 0x5e2242
push eax
push ebp
call fcn.005f9df0
mov eax, dword [esp + 0x18]
add esp, 8
cmp byte [eax + 0x57], 0
jne 0x5e2242
cmp dword [ebp + 8], 0
je 0x5e17d6
push ebp
call fcn.005f6350
mov ax, word [ebp + 0x34]
inc ax
movzx eax, ax
push eax
push ebp
call fcn.005f9df0
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp byte [eax + 0x57], 0
jne 0x5e2242
mov eax, 0x100
test word [ebp + 0x28], ax
je 0x5e17e6
add word [ebp + 0x34], 0xffe2
cmp dword [ebp + 8], 0
mov ecx, dword [esp + 0x10]
jne 0x5e180a
mov eax, dword [ecx + 0x20]
and eax, 0x1000
or eax, 0
je 0x5e180a
push ebp
call fcn.005fab30
mov ecx, dword [esp + 0x14]
add esp, 4
cmp dword [edi + 0x24], 0
jne 0x5e2242
mov al, byte [ebp + 0x2c]
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x2c], 0xffffffff
cmp al, 2
jb 0x5e1883
test ebx, ebx
je 0x5e186b
mov eax, dword [esp + 0x14]
xor edx, edx
and eax, 0x400
cmp dx, ax
jne 0x5e186b
test dword [ecx + 0x50], 0x100
jne 0x5e186b
push 0xffffffffffffffff
push 0xffffffffffffffff
push ebp
call fcn.005f8fa0
mov dword [esp + 0x34], eax
add esp, 0xc
mov al, byte [ebp + 0x2c]
movzx ecx, al
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], ecx
cmp al, 2
jb 0x5e1883
mov ebx, dword [esp + 0x10]
test dword [ebx + 0x50], 0x80000
jne 0x5e1887
push ebp
call fcn.005f5fc0
add esp, 4
jmp 0x5e1887
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp]
mov ax, word [ebp + 0x34]
add word [ecx + 0x9c], ax
xor ecx, ecx
mov eax, dword [esp + 0x14]
test al, 4
je 0x5e1919
mov edi, dword [ebp + 0x348]
mov edx, dword [edi + 0x2c]
test edx, 0x1000
jne 0x5e18de
test al, 8
je 0x5e1912
mov eax, dword [esp + 0x84]
mov eax, dword [eax + 0x18]
cmp byte [eax + 0x2b], 1
je 0x5e1912
test edx, 0x2000
je 0x5e18d3
test byte [esp + 0x14], 0x10
je 0x5e1912
xor ecx, ecx
test dword [ebx + 0x50], 0x8000000
jne 0x5e1912
mov eax, edx
and eax, 0x1000
neg eax
sbb al, al
xor ecx, ecx
add al, 2
mov byte [ebp + 0x2e], al
mov eax, dword [esp + 0x84]
mov eax, dword [eax + 0x18]
test byte [eax + 0x1c], 0x80
jne 0x5e1912
test dl, 0x40
je 0x5e1912
mov ecx, dword [esp + 0x14]
and edx, 0xffffffbf
mov dword [edi + 0x2c], edx
and ecx, 8
mov edi, dword [esp + 0x80]
movzx eax, cx
lea ebx, [ebp + 0x2f8]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], 0
mov dword [esp + 0x1c], ebx
test ecx, ecx
jle 0x5e1ff3
jmp 0x5e1947
mov edi, dword [esp + 0x80]
movzx eax, byte [ebx + 0x3c]
mov edx, 0xffff8000
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x20], edx
lea eax, [eax + eax*8]
lea eax, [eax + 1]
lea ebx, [ecx + eax*8]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x8c], eax
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x5e19a3
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x20], edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x5e199c
nop dword [eax]
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x5e1990
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x8c]
test dword [eax + 0x1c], 0x4000
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x50]
mov dword [esp + 0x38], ecx
jne 0x5e1b26
mov al, byte [eax + 0x2b]
cmp al, 2
je 0x5e1b1f
mov ecx, dword [ecx + 0x2c]
test ecx, 0x400
je 0x5e1a0b
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x5e19ee
mov ecx, dword [esp + 0x10]
cmp dword [eax], ecx
je 0x5e19ee
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x5e19e3
push 0xfffffffffffffff5
push eax
push 0
push 0
push dword [ebx + 0x2c]
push 0xad
push esi
call fcn.005d23e0
add esp, 0x1c
jmp 0x5e1b1f
cmp al, 1
je 0x5e1b1f
test cl, 0x40
jne 0x5e1a1f
test byte [esp + 0x14], 0x20
je 0x5e1a29
test byte [ebx + 0x24], 0x50
je 0x5e1aef
cmp byte [ebp + 0x2e], 0
mov ecx, 0x70
je 0x5e1a3f
mov eax, dword [ebx + 0x2c]
mov ecx, 0x71
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x8c]
push ecx
push eax
push edx
push dword [ebx + 0x2c]
push edi
call fcn.005bd1c0
add esp, 0x14
cmp byte [ebp + 0x2e], 0
jne 0x5e1ad7
mov eax, dword [esp + 0x8c]
cmp word [eax + 0x22], 0x40
jge 0x5e1ad7
test byte [eax + 0x1c], 0xe0
jne 0x5e1ad7
mov eax, dword [esp + 0x38]
test dword [eax + 0x2c], 0x404000
jne 0x5e1ad7
mov edx, dword [ebx + 0x38]
xor edi, edi
mov ecx, dword [ebx + 0x3c]
mov eax, edx
or eax, ecx
je 0x5e1a9d
nop
shrd edx, ecx, 1
inc edi
shr ecx, 1
mov eax, edx
or eax, ecx
jne 0x5e1a90
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x5e1ad0
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
cmp byte [eax + 1], 0
je 0x5e1ac9
push 0xfffffffffffffffd
push edi
push eax
push esi
call fcn.005edca0
add esp, 0x10
jmp 0x5e1ad0
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xfd
mov edi, dword [esp + 0x80]
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x5e1b1f
mov edx, dword [esp + 0x40]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x5e1b1f
cmp edx, 1
je 0x5e1b1f
mov eax, dword [edi]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
cmp byte [eax + 9], 0
mov eax, dword [esp + 0x8c]
je 0x5e1b26
push dword [eax]
push 0
push dword [eax + 0x14]
push edx
push edi
call fcn.0058a090
add esp, 0x14
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x38]
test dword [edx + 0x2c], 0x200
je 0x5e1b6f
test byte [eax + 0x1c], 0x80
mov ebx, dword [edx + 0x20]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x30], 0x70
je 0x5e1c37
mov eax, dword [ebx + 0x38]
and al, 3
cmp al, 2
mov eax, dword [esp + 0x14]
jne 0x5e1c3b
test al, 0x20
je 0x5e1c3b
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 4]
mov dword [ecx + 8], eax
mov ebx, dword [esp + 0x80]
mov ecx, dword [esp + 0x20]
test ecx, ecx
js 0x5e1bad
mov eax, dword [ebx + 0x80]
mov edx, ebx
test eax, eax
cmovne edx, eax
mov eax, 1
shl eax, cl
mov edi, dword [edx + 0x5c]
test edi, eax
jne 0x5e1bad
bts edi, ecx
mov dword [edx + 0x5c], edi
cmp ecx, 1
jne 0x5e1bad
push edx
call fcn.005bd530
add esp, 4
mov eax, dword [esp + 0x34]
test byte [eax + 0x24], 0x10
je 0x5e1fd3
mov eax, dword [ebp]
push 0
push 0x24
push dword [eax]
call fcn.005a9460
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x5e1beb
mov ecx, dword [ebp + 0x44]
mov dword [ebx], ecx
mov dword [ebx + 8], 0x14
mov dword [ebx + 0xc], 0
mov dword [ebp + 0x44], ebx
add ebx, 0x10
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x38], ebx
test ebx, ebx
je 0x5e1fd3
mov edi, dword [esp + 0x80]
mov eax, dword [edi + 0x28]
mov dword [ebx], eax
mov edx, dword [edi + 0x2c]
inc dword [edi + 0x28]
inc edx
mov dword [edi + 0x2c], edx
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x5e1deb
push 0
push edx
push 0x10000
push 0x4d
push esi
call fcn.00580cd0
add esp, 0x14
jmp 0x5e1e1a
mov eax, dword [esp + 0x14]
cmp byte [ebp + 0x2e], 0
je 0x5e1c72
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x9c]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
test eax, eax
je 0x5e1c62
cmp eax, ebx
je 0x5e1c62
mov eax, dword [eax + 0x14]
inc edi
test eax, eax
jne 0x5e1c56
mov dword [esp + 0x30], 0x71
mov dword [ebp + 0x18], edi
jmp 0x5e1cec
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x5e1c8f
test al, 0x20
je 0x5e1c8f
mov edi, ecx
mov dword [esp + 0x30], 0x65
mov eax, ecx
jmp 0x5e1cee
mov edi, dword [edi + 0x28]
mov ecx, dword [esp + 0x80]
lea eax, [edi + 1]
mov dword [ecx + 0x28], eax
test dword [ebx + 0x38], 0x1000
je 0x5e1ccc
mov eax, dword [esp + 0x10]
test dword [eax + 0x50], 0x1000000
jne 0x5e1ccc
mov eax, dword [esp + 0x34]
push eax
push edi
push ebx
push ecx
call fcn.005f5950
mov ecx, dword [esp + 0x90]
add esp, 0x10
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x5e1cec
mov edx, dword [esp + 0x34]
test byte [edx + 0x24], 0x10
jne 0x5e1cec
push edx
push edi
push 0
push eax
push ebx
push ecx
call fcn.005f9290
add esp, 0x18
mov eax, edi
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 8], eax
mov ecx, dword [esi + 0x6c]
mov edx, dword [ebx + 0x2c]
cmp dword [esi + 0x70], ecx
jg 0x5e1d15
push dword [esp + 0x20]
push edx
push edi
push dword [esp + 0x3c]
push esi
call fcn.00580cd0
add esp, 0x14
jmp 0x5e1d4b
mov ebx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4], bl
xor ebx, ebx
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x20]
mov word [eax + ecx*4 + 2], bx
mov dword [eax + ecx*4 + 0x10], ebx
mov byte [eax + ecx*4 + 1], bl
mov ebx, dword [esp + 0x44]
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], edx
mov eax, dword [esp + 0x80]
push ebx
mov ebx, eax
push ebx
mov edi, dword [eax + 8]
call fcn.005bb2b0
mov edx, eax
add esp, 8
test edx, edx
je 0x5e1d9d
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x5e1d8b
cmp dword [eax + 0x210], 0
jne 0x5e1d9d
add dword [edx], 0xffffffff
jne 0x5e1d9d
push edx
push dword [edx + 0xc]
call fcn.005a9580
add esp, 8
jmp 0x5e1d9d
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf8
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x2c]
test al, 0xf
je 0x5e1b76
test eax, 0x188002
jne 0x5e1b76
test byte [ebp + 0x28], 1
jne 0x5e1b76
cmp byte [ebp + 0x2f], 2
je 0x5e1b76
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x5e1b76
lea ecx, [eax + eax*4]
mov edx, 2
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x5e1b76
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], 0x10000
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
inc dword [edi + 0x2c]
mov edx, dword [edi + 0x2c]
mov dword [ebx + 8], edx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x5e1e3d
push 0
push edx
push 0
push 0x4b
push esi
call fcn.00580cd0
add esp, 0x14
jmp 0x5e1e73
mov edi, dword [esp + 0x80]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x4b
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 eax, dword [esp + 0x8c]
test byte [eax + 0x1c], 0x80
jne 0x5e1f0e
mov ecx, dword [esi + 0x6c]
mov edx, dword [ebx]
cmp dword [esi + 0x70], ecx
jg 0x5e1ea0
push 0
push 1
push edx
push 0x76
push esi
call fcn.00580cd0
add esp, 0x14
jmp 0x5e1ecf
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x76
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
push 0
push 1
push dword [edi]
call fcn.005bb1a0
mov edx, eax
add esp, 0xc
test edx, edx
je 0x5e1fc3
mov ecx, dword [edx + 0x10]
mov dword [edx + 0x14], 0
mov byte [ecx], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x5e1f95
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
jmp 0x5e1fba
mov edi, dword [eax + 8]
test edi, edi
je 0x5e1f25
mov eax, dword [edi + 0x38]
and al, 3
cmp al, 2
je 0x5e1f25
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x5e1f15
mov ecx, dword [esi + 0x6c]
movzx edx, word [edi + 0x32]
mov ebx, dword [ebx]
cmp dword [esi + 0x70], ecx
jg 0x5e1f44
push 0
push edx
push ebx
push 0x76
push esi
call fcn.00580cd0
add esp, 0x14
jmp 0x5e1f73
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x76
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x80]
push edi
push eax
mov ebx, dword [eax + 8]
call fcn.005bb2b0
mov edx, eax
add esp, 8
test edx, edx
je 0x5e1fc3
mov eax, dword [ebx]
cmp byte [eax + 0x57], 0
je 0x5e1fb1
cmp dword [eax + 0x210], 0
jne 0x5e1fc3
add dword [edx], 0xffffffff
jne 0x5e1fc3
push edx
push dword [edx + 0xc]
call fcn.005a9580
add esp, 8
jmp 0x5e1fc3
mov eax, dword [ebx + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 - 4], edx
mov byte [eax + ecx*4 - 0x13], 0xf8
mov ecx, dword [esp + 0x38]
and dword [ecx + 0x2c], 0xffffffbf
mov byte [ebp + 0x2d], 0
mov byte [ebp + 0x2f], 3
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0x18]
add ebx, 0x60
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], ebx
cmp eax, ecx
jl 0x5e1940
mov eax, dword [esi + 0x6c]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x57], 0
jne 0x5e2242
xor ebx, ebx
mov dword [esp + 0x8c], ebx
test ecx, ecx
jle 0x5e2232
lea ecx, [ebp + 0x50]
lea edi, [ebp + 0x2f8]
mov eax, dword [esp + 0x80]
cmp dword [eax + 0x24], 0
jne 0x5e2242
mov eax, dword [edi + 0x50]
mov edx, dword [esp + 0x84]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 0x3c]
lea eax, [eax + eax*8]
lea edx, [edx + eax*8]
mov eax, dword [edx + 0x30]
mov dword [esp + 0x3c], edx
test al, 0x10
je 0x5e2188
test al, 8
je 0x5e20b6
mov ecx, dword [esi + 0x6c]
mov ebx, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
cmp dword [esi + 0x70], ecx
jg 0x5e2082
push 0
push ebx
push edx
push 0xa
push esi
call fcn.00580cd0
add esp, 0x14
jmp 0x5e217e
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x5e217e
mov ebx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ebx
jg 0x5e20d3
push 0
push 0
push 0
push 0xf
push esi
call fcn.00580cd0
add esp, 0x14
mov ebx, eax
jmp 0x5e2106
lea eax, [ebx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ebx + ebx*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 edx, dword [esp + 0x3c]
mov ecx, dword [esi + 0x6c]
mov eax, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
mov dword [esp + 0x44], eax
cmp dword [esi + 0x70], ecx
jg 0x5e212d
push 0
push eax
push edx
push 0xa
push esi
call fcn.00580cd0
add esp, 0x14
jmp 0x5e2160
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4], 0xa
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]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x5e2172
mov eax, 0x6ebf90
jmp 0x5e217b
mov eax, dword [esi + 0x68]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov ebx, dword [esp + 0x8c]
lea ecx, [ebp + 0x50]
mov eax, dword [esp + 0x40]
test eax, fcn.00404000
je 0x5e21d3
test eax, 0x4000
je 0x5e21b2
push edi
push dword [esp + 0x30]
push dword [esp + 0x30]
push ecx
push dword [esp + 0x90]
call fcn.00572d20
jmp 0x5e21c2
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push edi
push ebx
push ebp
call fcn.005a74d0
mov eax, dword [esp + 0x24]
add esp, 0x14
cmp byte [eax + 0x57], 0
jne 0x5e2242
push dword [esp + 0x14]
push edi
push dword [esp + 0x8c]
push dword [esp + 0x8c]
call fcn.005e59b0
push dword [esp + 0x3c]
mov eax, dword [esi + 0x6c]
push dword [esp + 0x3c]
mov dword [edi + 0x20], eax
push edi
push ebx
push ebp
push esi
push dword [esp + 0xa8]
call fcn.005e22e0
mov dword [esp + 0x54], eax
lea ecx, [ebp + 0x50]
mov eax, dword [edi + 0x18]
inc ebx
add esp, 0x2c
mov dword [esp + 0x2c], edx
add edi, 0x60
mov dword [ebp + 0x1c], eax
mov dword [esp + 0x8c], ebx
cmp ebx, dword [esp + 0x18]
jl 0x5e2021
mov eax, dword [esi + 0x6c]
mov dword [ebp + 0x3c], eax
mov eax, ebp
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x6c
ret
mov ecx, dword [esp + 0x80]
mov ax, word [ebp + 0x24]
push ebp
push dword [esp + 0x14]
mov word [ecx + 0x9c], ax
call fcn.005f62b0
add esp, 8
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x6c
ret