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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x4b4
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
push 0x6e1964
xor ebx, ebx
push str.Encoding__s_image
lea eax, [esp + 0x2c0]
mov word [esp + 0x2c0], bx
call fcn.00483050
mov eax, dword [edi]
mov edx, dword [eax + 0x20]
add esp, 8
push ebx
lea ecx, [esp + 0x2bc]
push ecx
mov ecx, edi
call edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
xor esi, esi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], esi
jmp 0x581c90
mov edx, dword [edi]
mov eax, dword [edx]
mov ecx, edi
call eax
test al, al
jne 0x582289
mov ecx, esi
mov eax, 1
shl eax, cl
mov ecx, eax
and ecx, dword [esp + 0x74]
cmp ecx, eax
jne 0x582271
push eax
lea ecx, [esp + 0x73]
lea edx, [esp + 0xdc]
lea esi, [esp + 0x60]
lea edi, [esp + 0x64]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0xdc], ebx
mov byte [esp + 0x73], 0
call fcn.005be130
test al, al
je 0x5822a7
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], edx
lea eax, [esp + 0x48]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], edx
call fcn.005b8110
test al, al
jne 0x582271
push 0x50
call fcn.0069e704
add esp, 4
cmp eax, ebx
jne 0x581dcb
call fcn.004b05b0
xor edi, edi
mov dword [esp + 0x50], edi
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx]
mov eax, dword [ebx + 4]
test eax, eax
mov ecx, dword [ebx + 8]
mov dword [esp + 0x80], eax
fild dword [esp + 0x80]
jge 0x581d57
fadd qword [0x7235b8]
test ecx, ecx
mov dword [esp + 0x80], ecx
fild dword [esp + 0x80]
jge 0x581d6f
fadd qword [0x7235b8]
mov eax, dword [esp + 0x60]
fild dword [esp + 0x60]
test eax, eax
jge 0x581d81
fadd qword [0x7235b8]
fdiv st(2)
mov esi, dword [esp + 0x5c]
fnstcw word [esp + 0x56]
movzx eax, word [esp + 0x56]
fmul st(1)
fld qword [0x723578]
or eax, 0xc00
mov dword [esp + 0x64], eax
fadd st(1), st(0)
fldcw word [esp + 0x64]
fxch st(1)
fistp qword [esp + 0x80]
mov eax, dword [esp + 0x80]
cmp eax, esi
fldcw word [esp + 0x56]
ja 0x581ddd
fstp st(2)
mov dword [esp + 0x4c], eax
fstp st(0)
fstp st(0)
jmp 0x581e31
mov ecx, eax
call fcn.004d0af0
mov edi, eax
mov dword [esp + 0x50], eax
jmp 0x581d34
mov ecx, esi
test ecx, ecx
mov dword [esp + 0xd0], ecx
fild dword [esp + 0xd0]
jge 0x581df7
fadd qword [0x7235b8]
fdivrp st(2)
fnstcw word [esp + 0x44]
fxch st(1)
movzx eax, word [esp + 0x44]
fmulp st(2)
or eax, 0xc00
mov dword [esp + 0xd0], eax
faddp st(1)
fldcw word [esp + 0xd0]
fistp qword [esp + 0xd0]
mov edx, dword [esp + 0xd0]
fldcw word [esp + 0x44]
mov dword [esp + 0x44], edx
cmp dword [esp + 0x44], 0
jle 0x581ea3
cmp dword [esp + 0x4c], 0
jle 0x581ea3
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
push eax
mov eax, dword [ebx]
call fcn.004ce820
cmp dword [edi + 0x40], 0
je 0x5822c5
cmp dword [edi], 0xffffffff
je 0x581eae
cmp dword [edi + 4], 0
jle 0x581eae
cmp dword [edi + 8], 0
jle 0x581eae
mov ecx, dword [ebx + 0x14]
mov dword [edi + 0x14], ecx
mov edx, dword [ebx + 0x18]
mov dword [edi + 0x18], edx
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0xe8], ecx
lea ecx, [esp + 0xe4]
mov esi, edi
mov dword [esp + 0xe4], eax
call fcn.004d0cb0
mov esi, ebx
mov eax, edi
call fcn.004d6b80
jmp 0x581eaa
mov esi, edi
call fcn.004d16d0
mov esi, dword [esp + 0x5c]
cmp dword [edi + 0x40], 0
je 0x5822c5
cmp dword [edi], 0xffffffff
je 0x5822c5
cmp dword [edi + 4], 0
jle 0x5822c5
cmp dword [edi + 8], 0
jle 0x5822c5
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x44], ecx
jne 0x581ee9
cmp dword [esp + 0x4c], esi
je 0x582256
push esi
lea edx, [esp + 0x27c]
push edx
xor eax, eax
call fcn.004d3de0
push 1
lea eax, [esp + 0x27c]
lea ecx, [esp + 0x1dc]
call fcn.004d0b40
cmp dword [esp + 0x4c], esi
push 0
mov byte [esp + 0x76], 0
mov byte [esp + 0x75], 0
mov byte [esp + 0x74], 0
mov byte [esp + 0x77], 0
lea edi, [esp + 0x1dc]
push 0
jae 0x5820c3
mov ebx, dword [esp + 0x64]
sub ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x4c]
sar ebx, 1
mov eax, ebx
lea esi, [esp + 0xf4]
call fcn.004d3380
mov eax, dword [esp + 0x100]
cmp eax, dword [esp + 0xec]
jae 0x581fdb
xor edi, edi
lea edx, [esp + 0x70]
lea ecx, [esp + 0xec]
call dword [esp + 0x114]
mov edx, dword [esp + 0x100]
mov esi, dword [esp + 0xec]
cmp edx, esi
jae 0x581fdb
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x108]
add eax, dword [esp + 0xf8]
add ecx, 1
add edx, 1
cmp ecx, dword [esp + 0xf0]
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], ecx
mov dword [esp + 0x100], edx
jne 0x581fd7
add eax, dword [esp + 0xf4]
mov dword [esp + 0x108], edi
mov dword [esp + 0x104], eax
cmp edx, esi
jb 0x581f65
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x44]
push 0
push 0
push ebx
push 0
lea ecx, [esp + 0x1e8]
push ecx
push edx
mov eax, esi
mov ecx, edi
call fcn.004cfee0
mov eax, dword [esp + 0x5c]
sub eax, ebx
add ebx, esi
push ebx
sub eax, esi
mov ecx, edi
push 0
lea edi, [esp + 0x1e0]
lea esi, [esp + 0x184]
call fcn.004d3380
mov eax, dword [esp + 0x190]
cmp eax, dword [esp + 0x17c]
jae 0x582236
jmp 0x582040
lea edx, [esp + 0x70]
lea ecx, [esp + 0x17c]
call dword [esp + 0x1a4]
mov edx, dword [esp + 0x190]
mov esi, dword [esp + 0x17c]
cmp edx, esi
jae 0x582236
mov eax, dword [esp + 0x194]
mov ecx, dword [esp + 0x198]
add eax, dword [esp + 0x188]
add ecx, 1
add edx, 1
cmp ecx, dword [esp + 0x180]
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], ecx
mov dword [esp + 0x190], edx
jne 0x5820ba
add eax, dword [esp + 0x184]
mov dword [esp + 0x198], 0
mov dword [esp + 0x194], eax
cmp edx, esi
jb 0x582040
jmp 0x582236
mov ebx, dword [esp + 0x68]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
sar ebx, 1
mov ecx, ebx
lea esi, [esp + 0x124]
call fcn.004d3380
mov ecx, dword [esp + 0x130]
cmp ecx, dword [esp + 0x11c]
jae 0x582167
xor edi, edi
lea edx, [esp + 0x70]
lea ecx, [esp + 0x11c]
call dword [esp + 0x144]
mov edx, dword [esp + 0x130]
mov esi, dword [esp + 0x11c]
cmp edx, esi
jae 0x582167
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x138]
add eax, dword [esp + 0x128]
add ecx, 1
add edx, 1
cmp ecx, dword [esp + 0x120]
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ecx
mov dword [esp + 0x130], edx
jne 0x582163
add eax, dword [esp + 0x124]
mov dword [esp + 0x138], edi
mov dword [esp + 0x134], eax
cmp edx, esi
jb 0x5820f1
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
push 0
push 0
push 0
push ebx
lea edx, [esp + 0x1e8]
push edx
push eax
mov eax, edi
mov ecx, esi
call fcn.004cfee0
mov ecx, dword [esp + 0x60]
sub ecx, ebx
push 0
add ebx, esi
sub ecx, esi
mov eax, edi
push ebx
lea edi, [esp + 0x1e0]
lea esi, [esp + 0x154]
call fcn.004d3380
mov ecx, dword [esp + 0x160]
cmp ecx, dword [esp + 0x14c]
jae 0x582236
xor edi, edi
lea edx, [esp + 0x70]
lea ecx, [esp + 0x14c]
call dword [esp + 0x174]
mov edx, dword [esp + 0x160]
mov esi, dword [esp + 0x14c]
cmp edx, esi
jae 0x582236
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x168]
add eax, dword [esp + 0x158]
add ecx, 1
add edx, 1
cmp ecx, dword [esp + 0x150]
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], ecx
mov dword [esp + 0x160], edx
jne 0x582232
add eax, dword [esp + 0x154]
mov dword [esp + 0x168], edi
mov dword [esp + 0x164], eax
cmp edx, esi
jb 0x5821c0
mov edi, dword [esp + 0x50]
lea eax, [esp + 0x1d8]
call fcn.004d1240
lea ecx, [esp + 0x1d8]
call fcn.004d0c50
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
sub esp, 8
mov eax, esp
mov dword [eax], edx
mov dword [eax + 4], esi
push edi
lea eax, [esp + 0x4c]
push eax
call fcn.005b8140
xor ebx, ebx
mov esi, dword [esp + 0x48]
add esi, 1
cmp esi, 0xd
mov dword [esp + 0x48], esi
jae 0x5822f3
mov edi, dword [ebp + 0xc]
jmp 0x581c90
mov esi, dword [ebp + 8]
lea ecx, [esp + 0x40]
push ecx
mov dword [esi], 1
call fcn.005c47d0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov esi, dword [ebp + 8]
lea edx, [esp + 0x40]
push edx
mov dword [esi], 2
call fcn.005c47d0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov esi, dword [ebp + 8]
mov ecx, edi
mov dword [esi], 2
call fcn.004d0c50
push edi
call fcn.0069d0cc
add esp, 4
lea eax, [esp + 0x40]
push eax
call fcn.005c47d0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [ebp + 0xc]
fld qword [0x723688]
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
sub esp, 8
fstp qword [esp]
call eax
mov edx, dword [esp + 0x74]
xor esi, esi
mov dword [esp + 0x48], esi
xor ecx, ecx
mov eax, 1
shl eax, cl
mov edi, eax
and edi, edx
cmp edi, eax
jne 0x582327
add esi, 1
add ecx, 1
cmp ecx, 0xd
jb 0x582315
mov edi, dword [ebp + 0x10]
mov cx, si
lea edx, [esp + 0xc8]
mov dword [esp + 0x48], esi
push edx
lea esi, [esp + 0xe4]
mov word [esp + 0xcc], bx
mov word [esp + 0xce], 1
mov word [esp + 0xd0], cx
call fcn.005b7fa0
mov eax, dword [esp + 0xe0]
cmp eax, ebx
je 0x58238c
mov esi, dword [ebp + 8]
mov dword [esi], eax
lea eax, [esp + 0x40]
push eax
call fcn.005c47d0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea esi, [esp + 0x58]
call fcn.005b81f0
mov edi, dword [esp + 0x58]
xor esi, esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x4c], edi
jmp 0x5823a9
mov edi, dword [esp + 0x58]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
test al, al
jne 0x5827da
mov ecx, esi
mov eax, 1
shl eax, cl
mov ecx, eax
and ecx, dword [esp + 0x74]
cmp ecx, eax
jne 0x582698
push eax
lea ecx, [esp + 0x5a]
lea edx, [esp + 0x68]
lea esi, [esp + 0x7c]
lea edi, [esp + 0x6c]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x68], ebx
mov byte [esp + 0x5a], 0
call fcn.005be130
test al, al
je 0x58283a
push 0x50
call fcn.0069e704
add esp, 4
cmp eax, ebx
jne 0x58260f
call fcn.004b05b0
xor eax, eax
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x50], eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x40]
cmp eax, ebx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], edx
mov dword [esp + 0xc0], eax
je 0x58246b
lea esp, [esp]
cmp dword [eax + 4], ecx
jne 0x58245e
cmp dword [eax + 8], edx
je 0x582658
mov eax, dword [eax]
cmp eax, ebx
jne 0x582450
mov dword [esp + 0xc0], eax
lea eax, [esp + 0x80]
cmp byte [esp + 0x56], 0
mov esi, dword [eax]
je 0x582667
lea eax, [esp + 0xa7]
and eax, 0xfffffffc
mov dword [esp + 0x9c], 0x6dbfc0
mov dword [esp + 0xa0], eax
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
mov dword [eax], ebx
mov edx, dword [esp + 0xa0]
push edx
mov dword [esp + 0xa0], 0x70c7cc
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x9c], 0x70c7cc
mov dword [esp + 0xac], edi
mov eax, dword [edi]
push eax
call fcn.0069c8fa
mov dword [edi], ebx
mov dword [edi + 4], ebx
add esp, 4
cmp dword [esi], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
je 0x582544
lea ecx, [esp + 0x228]
call fcn.004d0af0
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x6c]
xor eax, eax
lea edi, [esp + 0x22c]
call fcn.004ce820
mov edx, esi
mov ecx, edi
call fcn.004d6750
mov eax, edi
mov edi, esi
call fcn.004d1240
lea ecx, [esp + 0x228]
call fcn.004d0c50
mov ecx, dword [esp + 0x44]
fild dword [esp + 0x44]
test ecx, ecx
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x9c]
mov dword [esp + 0x1ac], esi
mov dword [esp + 0x1b0], edx
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1b8], 0x6dbc50
jge 0x582587
fadd qword [0x7235b8]
fld qword [0x723e90]
lea edx, [esp + 0x88]
fmul st(1), st(0)
push edx
fxch st(1)
lea esi, [esp + 0x1b0]
lea edi, [esp + 0x1bc]
fadd qword [0x723688]
fstp qword [esp + 0x1c4]
fstp qword [esp + 0x1cc]
call fcn.00583400
mov eax, dword [esp + 0x88]
cmp eax, ebx
mov dword [esp + 0x1b8], 0x70c5e4
mov dword [esp + 0x9c], 0x70c7cc
jne 0x58287b
mov eax, dword [esp + 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov ecx, dword [esp + 0xa0]
push ebx
push ecx
mov dword [esp + 0xa4], 0x6dbfc0
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
jmp 0x58267e
mov ecx, 1
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov dword [eax], 0xffffffff
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0x1c], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x20], ebx
mov dword [eax + 0x24], ebx
mov dword [eax + 0x38], ebx
mov dword [eax + 0x28], ebx
mov dword [eax + 0x2c], ebx
mov dword [eax + 0x30], ebx
mov dword [eax + 0x34], ebx
mov dword [eax + 0x3c], ebx
mov dword [eax + 0x40], ebx
mov dword [eax + 0x44], ebx
mov dword [eax + 0x48], ebx
mov dword [eax + 0x4c], ebx
jmp 0x582419
mov dword [esp + 0xc0], eax
add eax, 0xc
jmp 0x582472
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x4c]
push edx
push esi
call fcn.005be340
test al, al
je 0x5828c2
cmp dword [esp + 0x50], ebx
je 0x582698
mov esi, dword [esp + 0x50]
mov ecx, esi
call fcn.004d0c50
push esi
call fcn.0069d0cc
add esp, 4
mov esi, dword [esp + 0x44]
add dword [esp + 0x4c], 8
add esi, 1
cmp esi, 0xd
mov dword [esp + 0x44], esi
jb 0x5823a5
mov ecx, dword [ebp + 0xc]
fld qword [0x723578]
mov eax, dword [ecx]
mov edx, dword [eax + 0x24]
sub esp, 8
fstp qword [esp]
call edx
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x58]
shl eax, 4
add eax, 6
mov dword [esp + 0x48], eax
xor esi, esi
lea eax, [edi + 4]
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov edx, dword [eax]
call edx
test al, al
jne 0x582a63
mov ecx, esi
mov eax, 1
shl eax, cl
mov ecx, eax
and ecx, dword [esp + 0x74]
cmp ecx, eax
jne 0x58297c
push eax
lea ecx, [esp + 0x83]
lea edx, [esp + 0xc8]
lea esi, [esp + 0xc0]
lea edi, [esp + 0xbc]
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc8], ebx
call fcn.005be130
test al, al
je 0x582ab5
mov eax, dword [esp + 0xb8]
cmp eax, 0x100
sete dl
sub dl, 1
mov byte [esp + 0x8e], 0
mov byte [esp + 0x8f], 0
mov word [esp + 0x90], 1
mov word [esp + 0x92], bx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
and edx, eax
mov eax, dword [esp + 0xbc]
cmp eax, 0x100
sete cl
sub cl, 1
mov byte [esp + 0x8c], dl
and ecx, eax
mov eax, dword [esp + 0xc4]
cmp eax, 4
mov byte [esp + 0x8d], cl
je 0x58291b
cmp eax, 8
je 0x5827cd
cmp eax, 0x20
jne 0x58283a
mov byte [esp + 0x8e], 0
jmp 0x582923
cmp edi, ebx
mov eax, dword [ebp + 8]
mov dword [eax], 1
je 0x582824
mov esi, dword [edi - 4]
lea eax, [edi - 4]
lea ebx, [edi + esi*8]
sub esi, 1
mov dword [esp + 0x88], eax
js 0x582814
lea esp, [esp]
mov ecx, dword [ebx - 8]
sub ebx, 8
push ecx
call fcn.0069c8fa
add esp, 4
sub esi, 1
jns 0x582800
mov edx, dword [esp + 0x88]
push edx
call fcn.0069c8fa
add esp, 4
lea eax, [esp + 0x40]
push eax
call fcn.005c47d0
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [ebp + 8]
mov dword [edi], 2
mov ecx, dword [esp + 0x58]
cmp ecx, ebx
je 0x582866
mov eax, dword [ecx - 4]
lea esi, [ecx - 4]
push 0x488280
push 8
call fcn.00407720
push esi
call fcn.0069c8fa
add esp, 4
lea ecx, [esp + 0x40]
push ecx
call fcn.005c47d0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [esp + 0xa0]
mov edi, dword [ebp + 8]
push edx
mov dword [edi], eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov eax, dword [esp + 0xa0]
push ebx
push eax
mov dword [esp + 0xa4], 0x6dbfc0
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov esi, dword [esp + 0x50]
cmp esi, ebx
je 0x582843
mov ecx, esi
call fcn.004d0c50
push esi
call fcn.0069d0cc
add esp, 4
jmp 0x582843
mov esi, dword [esp + 0x50]
cmp esi, ebx
mov edi, dword [ebp + 8]
mov dword [edi], 2
je 0x5828e3
mov ecx, esi
call fcn.004d0c50
push esi
call fcn.0069d0cc
add esp, 4
mov ecx, dword [esp + 0x58]
cmp ecx, ebx
je 0x582906
mov eax, dword [ecx - 4]
lea esi, [ecx - 4]
push 0x488280
push 8
call fcn.00407720
push esi
call fcn.0069c8fa
add esp, 4
lea edx, [esp + 0x40]
push edx
call fcn.005c47d0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov byte [esp + 0x8e], 0x10
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x48]
mov edi, dword [ebp + 0x10]
mov word [esp + 0x92], ax
mov eax, dword [edx]
lea edx, [esp + 0xdc]
push edx
lea esi, [esp + 0x90]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
call fcn.005b8030
mov eax, dword [esp + 0xdc]
cmp eax, ebx
jne 0x582af2
mov eax, dword [esp + 0x94]
add dword [esp + 0x48], eax
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x64]
add dword [esp + 0x68], 8
add esi, 1
cmp esi, 0xd
mov dword [esp + 0x64], esi
jb 0x5826e6
mov ecx, dword [ebp + 0xc]
fld qword [0x723b90]
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
sub esp, 8
fstp qword [esp]
call eax
mov dword [esp + 0x48], ebx
lea esi, [edi + 4]
mov edi, edi
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
test al, al
jne 0x582b43
mov ecx, dword [esp + 0x48]
mov eax, 1
shl eax, cl
mov ecx, eax
and ecx, dword [esp + 0x74]
cmp ecx, eax
jne 0x5829f4
mov eax, dword [esi]
mov edx, dword [ebp + 0x10]
mov ecx, dword [esi - 4]
mov edx, dword [edx + 8]
push eax
push ecx
add edx, 0x10
push edx
call fcn.004bb3f0
cmp eax, dword [esi]
jne 0x582b7f
mov eax, dword [esp + 0x48]
add eax, 1
add esi, 8
cmp eax, 0xd
mov dword [esp + 0x48], eax
jb 0x5829b0
mov ecx, dword [ebp + 0xc]
fld1
mov eax, dword [ecx]
mov edx, dword [eax + 0x24]
sub esp, 8
fstp qword [esp]
call edx
cmp edi, ebx
mov eax, dword [ebp + 8]
mov dword [eax], ebx
je 0x582a4d
mov ebx, dword [edi - 4]
lea esi, [edi - 4]
lea edi, [edi + ebx*8]
sub ebx, 1
js 0x582a44
mov ecx, dword [edi - 8]
sub edi, 8
push ecx
call fcn.0069c8fa
add esp, 4
sub ebx, 1
jns 0x582a30
push esi
call fcn.0069c8fa
add esp, 4
lea edx, [esp + 0x40]
push edx
call fcn.005c47d0
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp edi, ebx
mov ecx, dword [ebp + 8]
mov dword [ecx], 1
je 0x582824
mov ebx, dword [edi - 4]
lea esi, [edi - 4]
lea edi, [edi + ebx*8]
sub ebx, 1
js 0x582a96
mov edx, dword [edi - 8]
sub edi, 8
push edx
call fcn.0069c8fa
add esp, 4
sub ebx, 1
jns 0x582a82
push esi
call fcn.0069c8fa
add esp, 4
lea eax, [esp + 0x40]
push eax
call fcn.005c47d0
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esp + 0x58]
cmp eax, ebx
mov ecx, dword [ebp + 8]
mov dword [ecx], 2
je 0x582824
mov esi, dword [eax - 4]
lea edi, [eax - 4]
lea ebx, [eax + esi*8]
sub esi, 1
js 0x582aec
mov edx, dword [ebx - 8]
sub ebx, 8
push edx
call fcn.0069c8fa
add esp, 4
sub esi, 1
jns 0x582ad8
push edi
jmp 0x58281c
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [esp + 0x58]
cmp eax, ebx
je 0x582b2d
mov esi, dword [eax - 4]
lea edi, [eax - 4]
lea ebx, [eax + esi*8]
sub esi, 1
js 0x582b24
lea ecx, [ecx]
mov eax, dword [ebx - 8]
sub ebx, 8
push eax
call fcn.0069c8fa
add esp, 4
sub esi, 1
jns 0x582b10
push edi
call fcn.0069c8fa
add esp, 4
lea ecx, [esp + 0x40]
push ecx
call fcn.005c47d0
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp edi, ebx
mov eax, dword [ebp + 8]
mov dword [eax], 1
je 0x582a4d
mov ebx, dword [edi - 4]
lea esi, [edi - 4]
lea edi, [edi + ebx*8]
sub ebx, 1
js 0x582a44
mov ecx, dword [edi - 8]
sub edi, 8
push ecx
call fcn.0069c8fa
add esp, 4
sub ebx, 1
jns 0x582b66
jmp 0x582a44
cmp edi, ebx
mov eax, dword [ebp + 8]
mov dword [eax], 2
je 0x582a4d
mov ebx, dword [edi - 4]
lea esi, [edi - 4]
lea edi, [edi + ebx*8]
sub ebx, 1
js 0x582a44
mov ecx, dword [edi - 8]
sub edi, 8
push ecx
call fcn.0069c8fa
add esp, 4
sub ebx, 1
jns 0x582ba2
jmp 0x582a44