Function at 0x5e1ba0
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 0x5e1bed
cmp dword [eax], 0x40
jl 0x5e1bed
mov eax, dword [esp + 0x94]
mov dword [esp + 0x88], 0
and eax, 0xfeff
jmp 0x5e1bf4
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 0x5e1c23
push 0x40
push str.at_most__d_tables_in_a_join
push ecx
call fcn.005abd70
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x6c
ret
mov ebx, 0x358
test al, 0x20
je 0x5e1c77
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.005a9cf0
mov ebp, eax
add esp, 0xc
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x57], 0
je 0x5e1c97
test ebp, ebp
je 0x5e2b01
push ebp
push eax
call fcn.005a9be0
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 0x5e1c39
lea edi, [ecx + ecx*2]
mov dword [esp + 0x14], ecx
shl edi, 5
lea ebx, [edi + 0x2ff]
and ebx, 0xfffffff8
jmp 0x5e1c3f
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.00621d30
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.005e6f70
add esp, 0x18
cmp dword [esp + 0x18], 0
jne 0x5e1f81
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5e1dc6
mov al, byte [eax]
mov byte [ebp + 0x2d], al
test dword [esp + 0x14], 0x100
je 0x5e1dde
mov eax, dword [esp + 0x10]
test byte [eax + 0x50], 0x10
jne 0x5e1dde
mov byte [ebp + 0x2f], 1
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x5e1e05
test dword [eax + 4], 0x400
jne 0x5e1e05
mov ecx, dword [esp + 0x80]
push str.SCAN_CONSTANT_ROW
push 0
push ecx
call fcn.005dc1e0
add esp, 0xc
mov eax, dword [esp + 0x84]
mov edi, dword [ebp + 0x5c]
lea ebx, [ebp + 0x50]
sub edi, 1
js 0x5e1e2e
push edi
push ebx
push eax
call fcn.00576d30
mov eax, dword [esp + 0x90]
add esp, 0xc
sub edi, 1
jns 0x5e1e17
mov eax, dword [esp + 0x94]
test eax, eax
je 0x5e1e4c
cmp dword [eax + 0x3c], 0
je 0x5e1e4c
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.005e1ab0
add esp, 8
mov edi, dword [esp + 0x80]
cmp dword [edi + 0x24], 0
jne 0x5e2ae2
mov eax, dword [esp + 0x4c]
xor edx, edx
mov dword [esp + 0x2c], edx
cmp dword [eax + 0x14], edx
jle 0x5e1f48
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 0x5e1f24
mov eax, dword [edi + 0x28]
or eax, dword [edi + 0x2c]
mov ebx, dword [edi]
jne 0x5e1f24
cmp dword [esp + 0x18], eax
je 0x5e1ef5
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], 0x57a350
mov dword [esp + 0x68], 0x5cc3d0
test ebx, ebx
je 0x5e1ef5
lea eax, [esp + 0x60]
push ebx
push eax
call fcn.005e1800
mov ecx, dword [esp + 0x30]
add esp, 8
cmp word [esp + 0x74], 0
mov edx, dword [esp + 0x2c]
je 0x5e1f24
test byte [ebx + 4], 2
je 0x5e1f08
mov eax, dword [esp + 0x84]
test byte [eax + 0x2c], 0x40
jne 0x5e1f24
push 0x10
push dword [ebp + 0x20]
push ebx
push esi
call fcn.005afdc0
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 0x5e1e80
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x80]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x90]
test ecx, 0x100
je 0x5e2004
mov eax, dword [esp + 0x10]
test byte [eax + 0x50], 0x10
je 0x5e1fcf
and ecx, 0xfeff
mov dword [esp + 0x14], ecx
mov ecx, 0xfeff
and word [ebp + 0x28], cx
jmp 0x5e2004
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.005e6fe0
mov eax, dword [esp + 0x90]
inc ebx
add esp, 0xc
add edi, 0x48
cmp ebx, dword [eax]
jl 0x5e1f90
mov esi, dword [esp + 0x24]
jmp 0x5e1e0c
push ebx
lea eax, [ebp + 0x50]
push eax
push dword [esp + 0x8c]
push edi
call fcn.00582fd0
add esp, 0x10
test eax, eax
je 0x5e1fee
mov byte [ebp + 0x2f], 1
jmp 0x5e2004
cmp dword [esp + 0x8c], 0
jne 0x5e2004
mov eax, 0x80
mov dword [ebp + 8], ebx
or word [ebp + 0x28], ax
cmp dword [esp + 0x18], 1
jne 0x5e201c
lea eax, [esp + 0x48]
push eax
call fcn.005fb810
add esp, 4
test eax, eax
jne 0x5e2086
lea eax, [esp + 0x48]
push eax
call fcn.005f6de0
add esp, 4
test eax, eax
jne 0x5e2ae2
push eax
push ebp
call fcn.005fa690
mov eax, dword [esp + 0x18]
add esp, 8
cmp byte [eax + 0x57], 0
jne 0x5e2ae2
cmp dword [ebp + 8], 0
je 0x5e2076
push ebp
call fcn.005f6bd0
mov ax, word [ebp + 0x34]
inc ax
movzx eax, ax
push eax
push ebp
call fcn.005fa690
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp byte [eax + 0x57], 0
jne 0x5e2ae2
mov eax, 0x100
test word [ebp + 0x28], ax
je 0x5e2086
add word [ebp + 0x34], 0xffe2
cmp dword [ebp + 8], 0
mov ecx, dword [esp + 0x10]
jne 0x5e20aa
mov eax, dword [ecx + 0x20]
and eax, 0x1000
or eax, 0
je 0x5e20aa
push ebp
call fcn.005fb3d0
mov ecx, dword [esp + 0x14]
add esp, 4
cmp dword [edi + 0x24], 0
jne 0x5e2ae2
mov al, byte [ebp + 0x2c]
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x2c], 0xffffffff
cmp al, 2
jb 0x5e2123
test ebx, ebx
je 0x5e210b
mov eax, dword [esp + 0x14]
xor edx, edx
and eax, 0x400
cmp dx, ax
jne 0x5e210b
test dword [ecx + 0x50], 0x100
jne 0x5e210b
push 0xffffffffffffffff
push 0xffffffffffffffff
push ebp
call fcn.005f9840
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 0x5e2123
mov ebx, dword [esp + 0x10]
test dword [ebx + 0x50], 0x80000
jne 0x5e2127
push ebp
call fcn.005f6840
add esp, 4
jmp 0x5e2127
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 0x5e21b9
mov edi, dword [ebp + 0x348]
mov edx, dword [edi + 0x2c]
test edx, 0x1000
jne 0x5e217e
test al, 8
je 0x5e21b2
mov eax, dword [esp + 0x84]
mov eax, dword [eax + 0x18]
cmp byte [eax + 0x2b], 1
je 0x5e21b2
test edx, 0x2000
je 0x5e2173
test byte [esp + 0x14], 0x10
je 0x5e21b2
xor ecx, ecx
test dword [ebx + 0x50], 0x8000000
jne 0x5e21b2
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 0x5e21b2
test dl, 0x40
je 0x5e21b2
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 0x5e2893
jmp 0x5e21e7
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 0x5e2243
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 0x5e223c
nop dword [eax]
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x5e2230
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 0x5e23c6
mov al, byte [eax + 0x2b]
cmp al, 2
je 0x5e23bf
mov ecx, dword [ecx + 0x2c]
test ecx, 0x400
je 0x5e22ab
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x5e228e
mov ecx, dword [esp + 0x10]
cmp dword [eax], ecx
je 0x5e228e
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x5e2283
push 0xfffffffffffffff5
push eax
push 0
push 0
push dword [ebx + 0x2c]
push 0xad
push esi
call fcn.005d2c80
add esp, 0x1c
jmp 0x5e23bf
cmp al, 1
je 0x5e23bf
test cl, 0x40
jne 0x5e22bf
test byte [esp + 0x14], 0x20
je 0x5e22c9
test byte [ebx + 0x24], 0x50
je 0x5e238f
cmp byte [ebp + 0x2e], 0
mov ecx, 0x70
je 0x5e22df
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.005bda50
add esp, 0x14
cmp byte [ebp + 0x2e], 0
jne 0x5e2377
mov eax, dword [esp + 0x8c]
cmp word [eax + 0x22], 0x40
jge 0x5e2377
test byte [eax + 0x1c], 0xe0
jne 0x5e2377
mov eax, dword [esp + 0x38]
test dword [eax + 0x2c], 0x404000
jne 0x5e2377
mov edx, dword [ebx + 0x38]
xor edi, edi
mov ecx, dword [ebx + 0x3c]
mov eax, edx
or eax, ecx
je 0x5e233d
nop
shrd edx, ecx, 1
inc edi
shr ecx, 1
mov eax, edx
or eax, ecx
jne 0x5e2330
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x5e2370
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 0x5e2369
push 0xfffffffffffffffd
push edi
push eax
push esi
call fcn.005ee540
add esp, 0x10
jmp 0x5e2370
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xfd
mov edi, dword [esp + 0x80]
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x5e23bf
mov edx, dword [esp + 0x40]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x5e23bf
cmp edx, 1
je 0x5e23bf
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 0x5e23c6
push dword [eax]
push 0
push dword [eax + 0x14]
push edx
push edi
call fcn.0058a980
add esp, 0x14
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x38]
test dword [edx + 0x2c], 0x200
je 0x5e240f
test byte [eax + 0x1c], 0x80
mov ebx, dword [edx + 0x20]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x30], 0x70
je 0x5e24d7
mov eax, dword [ebx + 0x38]
and al, 3
cmp al, 2
mov eax, dword [esp + 0x14]
jne 0x5e24db
test al, 0x20
je 0x5e24db
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 0x5e244d
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 0x5e244d
bts edi, ecx
mov dword [edx + 0x5c], edi
cmp ecx, 1
jne 0x5e244d
push edx
call fcn.005bddc0
add esp, 4
mov eax, dword [esp + 0x34]
test byte [eax + 0x24], 0x10
je 0x5e2873
mov eax, dword [ebp]
push 0
push 0x24
push dword [eax]
call fcn.005a9cf0
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x5e248b
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 0x5e2873
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 0x5e268b
push 0
push edx
push 0x10000
push 0x4d
push esi
call fcn.005815b0
add esp, 0x14
jmp 0x5e26ba
mov eax, dword [esp + 0x14]
cmp byte [ebp + 0x2e], 0
je 0x5e2512
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x9c]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
test eax, eax
je 0x5e2502
cmp eax, ebx
je 0x5e2502
mov eax, dword [eax + 0x14]
inc edi
test eax, eax
jne 0x5e24f6
mov dword [esp + 0x30], 0x71
mov dword [ebp + 0x18], edi
jmp 0x5e258c
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x5e252f
test al, 0x20
je 0x5e252f
mov edi, ecx
mov dword [esp + 0x30], 0x65
mov eax, ecx
jmp 0x5e258e
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 0x5e256c
mov eax, dword [esp + 0x10]
test dword [eax + 0x50], 0x1000000
jne 0x5e256c
mov eax, dword [esp + 0x34]
push eax
push edi
push ebx
push ecx
call fcn.005f61d0
mov ecx, dword [esp + 0x90]
add esp, 0x10
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x5e258c
mov edx, dword [esp + 0x34]
test byte [edx + 0x24], 0x10
jne 0x5e258c
push edx
push edi
push 0
push eax
push ebx
push ecx
call fcn.005f9b30
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 0x5e25b5
push dword [esp + 0x20]
push edx
push edi
push dword [esp + 0x3c]
push esi
call fcn.005815b0
add esp, 0x14
jmp 0x5e25eb
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.005bbb40
mov edx, eax
add esp, 8
test edx, edx
je 0x5e263d
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x5e262b
cmp dword [eax + 0x210], 0
jne 0x5e263d
add dword [edx], 0xffffffff
jne 0x5e263d
push edx
push dword [edx + 0xc]
call fcn.005a9e10
add esp, 8
jmp 0x5e263d
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 0x5e2416
test eax, 0x188002
jne 0x5e2416
test byte [ebp + 0x28], 1
jne 0x5e2416
cmp byte [ebp + 0x2f], 2
je 0x5e2416
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x5e2416
lea ecx, [eax + eax*4]
mov edx, 2
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x5e2416
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 0x5e26dd
push 0
push edx
push 0
push 0x4b
push esi
call fcn.005815b0
add esp, 0x14
jmp 0x5e2713
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 0x5e27ae
mov ecx, dword [esi + 0x6c]
mov edx, dword [ebx]
cmp dword [esi + 0x70], ecx
jg 0x5e2740
push 0
push 1
push edx
push 0x76
push esi
call fcn.005815b0
add esp, 0x14
jmp 0x5e276f
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.005bba30
mov edx, eax
add esp, 0xc
test edx, edx
je 0x5e2863
mov ecx, dword [edx + 0x10]
mov dword [edx + 0x14], 0
mov byte [ecx], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x5e2835
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
jmp 0x5e285a
mov edi, dword [eax + 8]
test edi, edi
je 0x5e27c5
mov eax, dword [edi + 0x38]
and al, 3
cmp al, 2
je 0x5e27c5
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x5e27b5
mov ecx, dword [esi + 0x6c]
movzx edx, word [edi + 0x32]
mov ebx, dword [ebx]
cmp dword [esi + 0x70], ecx
jg 0x5e27e4
push 0
push edx
push ebx
push 0x76
push esi
call fcn.005815b0
add esp, 0x14
jmp 0x5e2813
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.005bbb40
mov edx, eax
add esp, 8
test edx, edx
je 0x5e2863
mov eax, dword [ebx]
cmp byte [eax + 0x57], 0
je 0x5e2851
cmp dword [eax + 0x210], 0
jne 0x5e2863
add dword [edx], 0xffffffff
jne 0x5e2863
push edx
push dword [edx + 0xc]
call fcn.005a9e10
add esp, 8
jmp 0x5e2863
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 0x5e21e0
mov eax, dword [esi + 0x6c]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x57], 0
jne 0x5e2ae2
xor ebx, ebx
mov dword [esp + 0x8c], ebx
test ecx, ecx
jle 0x5e2ad2
lea ecx, [ebp + 0x50]
lea edi, [ebp + 0x2f8]
mov eax, dword [esp + 0x80]
cmp dword [eax + 0x24], 0
jne 0x5e2ae2
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 0x5e2a28
test al, 8
je 0x5e2956
mov ecx, dword [esi + 0x6c]
mov ebx, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
cmp dword [esi + 0x70], ecx
jg 0x5e2922
push 0
push ebx
push edx
push 0xa
push esi
call fcn.005815b0
add esp, 0x14
jmp 0x5e2a1e
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 0x5e2a1e
mov ebx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ebx
jg 0x5e2973
push 0
push 0
push 0
push 0xf
push esi
call fcn.005815b0
add esp, 0x14
mov ebx, eax
jmp 0x5e29a6
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 0x5e29cd
push 0
push eax
push edx
push 0xa
push esi
call fcn.005815b0
add esp, 0x14
jmp 0x5e2a00
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 0x5e2a12
mov eax, 0x6ecf90
jmp 0x5e2a1b
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 0x5e2a73
test eax, 0x4000
je 0x5e2a52
push edi
push dword [esp + 0x30]
push dword [esp + 0x30]
push ecx
push dword [esp + 0x90]
call fcn.005735f0
jmp 0x5e2a62
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push edi
push ebx
push ebp
call fcn.005a7d60
mov eax, dword [esp + 0x24]
add esp, 0x14
cmp byte [eax + 0x57], 0
jne 0x5e2ae2
push dword [esp + 0x14]
push edi
push dword [esp + 0x8c]
push dword [esp + 0x8c]
call fcn.005e6250
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.005e2b80
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 0x5e28c1
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.005f6b30
add esp, 8
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x6c
ret