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

Disassembly:
sub esp, 0x44
push ebx
mov eax, dword [0x6454f8]
push ebp
mov ebp, ecx
push esi
push edi
mov esi, dword [ebp + 0x1a0]
lea ebx, [ebp + 0x1a0]
or esi, eax
push 1
mov ecx, ebx
mov dword [ebx], esi
call fcn.005823e0
push 2
mov ecx, ebx
call fcn.005823e0
mov eax, dword [ebp + 0xf0]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
jle 0x581f6b
lea ecx, [ebp + 0x1a4]
lea edx, [ebp + 0x50]
mov dword [esp + 0x24], 0x77ea48
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edx
mov eax, dword [0x6833d0]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax + 0x424]
mov eax, dword [edx]
push eax
call fcn.00603f70
mov esi, eax
test esi, esi
je 0x5820d1
mov ecx, esi
call fcn.00539bc0
test eax, eax
je 0x5820d1
fld dword [esi + 0x30]
fcomp dword [0x634594]
fnstsw ax
test ah, 0x41
jne 0x5820d1
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx + 0xf4]
mov ecx, dword [esi + 0xc]
mov eax, dword [edx + 0xf0]
mov edx, dword [ecx + 0x9c]
cmp edx, dword [eax + 0x9c]
jne 0x5820d1
mov eax, dword [esi]
lea ecx, [esp + 0x3c]
push ecx
mov ecx, esi
call dword [eax + 0x23c]
fld dword [esp + 0x30]
fadd dword [eax]
inc dword [esp + 0x2c]
fstp dword [esp + 0x30]
fld dword [esp + 0x34]
fadd dword [eax + 4]
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fadd dword [eax + 8]
fstp dword [esp + 0x38]
cmp byte [esi + 0x36], 1
jne 0x581e6b
mov edx, dword [0x645500]
mov eax, dword [ebx]
or eax, edx
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x58]
push eax
call fcn.00593a80
test al, al
jne 0x5820bf
push 0
mov ecx, ebx
call fcn.005823e0
mov ecx, dword [0x6833d0]
mov edx, dword [ecx + 0x424]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 0x10]
mov dword [ecx], eax
mov ecx, esi
call fcn.00539bc0
mov ecx, eax
call fcn.00413470
cmp eax, 0xffffffff
je 0x581f3f
mov ecx, esi
call fcn.00539bc0
mov ecx, eax
call fcn.005d65b0
cmp eax, 0x258
jne 0x581f3f
cmp dword [esp + 0x24], 0x77ea5c
jge 0x581f3f
mov ecx, dword [esp + 0x24]
mov eax, 0x77ea48
xor edi, edi
cmp ecx, eax
jle 0x581f17
mov dword [esp + 0x28], eax
mov ecx, esi
call fcn.00539bc0
mov ecx, eax
call fcn.00413470
mov edx, dword [esp + 0x28]
cmp dword [edx], eax
je 0x581f11
mov eax, dword [esp + 0x14]
mov ecx, edx
inc edi
add ecx, 4
cmp edi, eax
mov dword [esp + 0x28], ecx
jl 0x581ee7
jmp 0x581f17
cmp edi, dword [esp + 0x14]
jl 0x581f3b
mov ecx, esi
call fcn.00539bc0
mov ecx, eax
call fcn.00413470
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
inc edx
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov eax, 4
inc edi
add edx, eax
add ecx, eax
mov eax, dword [ebp + 0xf0]
mov dword [esp + 0x18], edi
cmp edi, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ecx
jl 0x581dbd
fild dword [esp + 0x2c]
push ecx
lea ecx, [esp + 0x40]
fstp dword [esp]
push ecx
lea ecx, [esp + 0x38]
call fcn.005e84f0
mov ecx, dword [eax]
lea edx, [ebp + 0x194]
mov dword [ebp + 0x194], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
mov ecx, dword [0x6454f8]
test dword [ebx], ecx
ja 0x581fba
mov edx, dword [0x6833d0]
mov eax, dword [edx + 0x424]
mov ecx, dword [eax + 0x10]
mov dword [ebp + 0x130], ecx
mov eax, dword [ebp + 0x258]
test eax, eax
jle 0x5820f8
cmp dword [ebp + 0xf0], eax
jg 0x5820f8
cmp dword [ebp + 0xf8], 2
jne 0x5820f8
mov edx, dword [0x6833d0]
mov eax, dword [ebp + 0x50]
lea esi, [ebp + 0x50]
push eax
mov ecx, dword [edx + 0x424]
call fcn.00603f70
mov ecx, dword [esp + 0x58]
mov edi, eax
add ecx, 0x1538
test edi, edi
mov edx, dword [ecx]
mov dword [esp + 0x3c], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x40], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x44], ecx
je 0x5820f8
fld dword [esp + 0x44]
call fcn.0061318c
fld dword [esp + 0x3c]
push eax
call fcn.0061318c
push eax
mov ecx, edi
call fcn.00539bd0
mov dl, al
mov ecx, edi
mov byte [esp + 0x13], dl
call fcn.00539cc0
mov dl, byte [esp + 0x13]
cmp al, dl
jne 0x5820f8
or eax, 0xffffffff
mov dword [ebp + 0xf8], 1
mov dword [ebp + 0xfc], eax
mov dword [ebp + 0x100], eax
mov dword [ebp + 0x44], 0
mov ecx, dword [0x645504]
mov edi, dword [ebx]
or edi, ecx
mov ecx, dword [esp + 0x44]
mov dword [ebx], edi
mov edx, dword [0x6833d0]
push ecx
mov ecx, dword [esp + 0x5c]
mov edi, dword [edx + 0x424]
mov edx, dword [esp + 0x40]
push edx
push eax
push eax
mov eax, dword [ebp + 0xf0]
push eax
push esi
call fcn.00411d20
mov ecx, dword [edi + 0x68]
push eax
call fcn.00441800
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 4
mov eax, dword [0x6454fc]
mov ecx, dword [ebx]
not eax
and ecx, eax
mov dword [ebx], ecx
jmp 0x581f3f
push edi
mov ecx, ebp
call fcn.00582540
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov eax, 4
dec edi
sub edx, eax
sub ecx, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ecx
jmp 0x581f3f
mov eax, dword [ebp + 0x48]
cmp eax, 0x64
je 0x582109
cmp eax, 0x66
jne 0x582322
mov ecx, dword [0x6454fc]
mov eax, dword [ebx]
test eax, ecx
ja 0x582322
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x582322
mov eax, dword [ebp + 0xf0]
mov dword [esp + 0x18], 0
test eax, eax
jle 0x582322
lea esi, [ebp + 0x1a4]
mov dword [esp + 0x28], esi
mov edx, dword [0x6833d0]
mov eax, dword [esi - 0x154]
push eax
mov ecx, dword [edx + 0x424]
call fcn.00603f70
mov edi, eax
test edi, edi
je 0x582304
mov ecx, edi
call fcn.00539bc0
test eax, eax
je 0x582304
mov ecx, dword [edi + 4]
push ecx
mov ecx, dword [esp + 0x5c]
call fcn.00593a80
test al, al
je 0x582304
mov edx, dword [0x6833d0]
mov eax, dword [edx + 0x424]
mov edx, dword [esi]
mov ecx, dword [eax + 0x10]
sub ecx, edx
cmp ecx, 0xbb8
jb 0x582304
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x582304
mov ebx, 0x77ea48
mov dword [esp + 0x2c], eax
mov edx, dword [0x6833d0]
mov eax, dword [ebx]
push eax
mov ecx, dword [edx + 0x424]
call fcn.00603f70
mov esi, eax
test esi, esi
je 0x5822ee
mov ecx, dword [edi + 8]
cmp word [ecx + 0x16], 0x12
jne 0x582206
mov ecx, edi
call fcn.00539bc0
mov ecx, dword [esi + 4]
mov edx, dword [eax]
push 0
push ecx
mov ecx, eax
call dword [edx + 0xc0]
test eax, eax
je 0x5822ee
mov ecx, edi
call fcn.00539bc0
mov edx, dword [eax]
push esi
mov ecx, eax
call dword [edx + 0x4c]
test eax, eax
je 0x5822ee
mov edx, dword [esi + 0xc]
mov ecx, dword [edi + 0xc]
mov edx, dword [edx + 0x9c]
mov eax, dword [ecx]
push edx
call dword [eax + 0x20]
test eax, eax
je 0x582251
mov ecx, edi
call fcn.00539bc0
mov ecx, dword [esi + 8]
mov edx, dword [eax]
movsx ecx, word [ecx + 0x10]
push ecx
mov ecx, eax
call dword [edx + 0x50]
test eax, eax
je 0x5822ee
mov edx, dword [edi]
push 0
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
mov ecx, edi
call dword [edx + 0x128]
mov eax, dword [esi]
push ecx
lea ecx, [esp + 0x58]
fstp dword [esp]
push ecx
mov ecx, esi
call dword [eax + 0x23c]
mov ecx, dword [eax]
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, edi
mov dword [edx + 8], eax
mov edx, dword [edi]
lea eax, [esp + 0x70]
push eax
call dword [edx + 0x23c]
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
push esi
push edi
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
call fcn.004ae3c0
add esp, 0x3c
test eax, eax
je 0x5822ee
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 4]
push 0x64
push 0
mov edx, dword [ecx + 0x9c]
mov ecx, dword [esi + 0x3c]
push 0xffffffffffffffff
push 0
push 0
push edx
mov edx, dword [esi + 0x38]
push eax
mov eax, dword [edi + 4]
push ecx
mov ecx, dword [esp + 0x78]
push edx
push eax
call fcn.0058fda0
mov eax, dword [esp + 0x2c]
add ebx, 4
dec eax
mov dword [esp + 0x2c], eax
jne 0x5821bf
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0xf0]
inc eax
add esi, 4
cmp eax, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], esi
jl 0x582145
mov eax, dword [ebp + 0x138]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x2c], ebx
jle 0x5823c4
lea esi, [ebp + 0x13c]
mov ecx, dword [0x6833d0]
mov edx, dword [esi]
push edx
mov ecx, dword [ecx + 0x424]
call fcn.00603f70
mov edi, eax
test edi, edi
je 0x582386
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0xf4]
mov eax, dword [edi + 0xc]
mov ecx, dword [ecx + 0xf0]
mov eax, dword [eax + 0x9c]
push eax
mov edx, dword [ecx]
call dword [edx + 0x1c]
cmp eax, 1
je 0x582386
mov ecx, dword [edi + 0xc]
cmp byte [ecx + 0xa2], 2
jne 0x58239c
mov edx, dword [esi]
mov ecx, ebp
push edx
call fcn.005833e0
dec ebx
sub esi, 4
mov dword [esp + 0x2c], 1
mov eax, dword [ebp + 0x138]
inc ebx
add esi, 4
cmp ebx, eax
jl 0x58233c
cmp dword [esp + 0x2c], 1
jne 0x5823c4
push 1
mov ecx, ebp
call fcn.00583310
mov dword [ebp + 0xf8], 2
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x44
ret 4