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

Disassembly:
sub esp, 0x50
push ebx
push ebp
push esi
mov esi, dword [esp + 0x68]
test esi, esi
push edi
je 0x468929
mov eax, dword [esp + 0x64]
test eax, eax
je 0x468929
mov edx, dword [esp + 0x70]
mov edi, dword [0x7c85b4]
push edx
mov edx, dword [esi + 0x18]
push edx
mov edx, dword [esi]
push edx
push 0
push eax
mov eax, dword [esi + 0x28]
push eax
call fcn.00468940
mov ebp, eax
test ebp, ebp
mov dword [esp + 0x64], ebp
je 0x46891d
mov ecx, dword [esi]
mov dword [ebp + 0x14], ecx
mov edx, dword [esi + 4]
mov dword [ebp + 0x18], edx
mov al, byte [esi + 8]
mov byte [ebp + 0x20], al
mov ecx, dword [esi + 0xc]
mov dword [ebp + 0x24], ecx
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0x70]
mov dword [ebp + 0x28], edx
mov eax, dword [esi + 0x14]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], ecx
mov edx, dword [esi + 0x2c]
mov dword [ebp + 0x3c], edx
mov eax, dword [esi + 0x2c]
cmp eax, edi
jb 0x4686a8
inc eax
mov dword [0x7c85b4], eax
mov eax, dword [esp + 0x68]
fld dword [esp + 0x70]
test eax, eax
mov dword [ebp], eax
mov ecx, dword [esi + 0x1c]
mov dword [ebp + 4], ecx
mov edx, dword [esi + 0x20]
mov dword [ebp + 8], edx
mov ecx, dword [esi + 0x24]
mov dword [ebp + 0xc], ecx
fadd dword [ebp + 0xc]
mov dword [ebp + 0x10], 0
fstp dword [ebp + 0xc]
je 0x468710
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x4686e9
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ebp + 0x1c]
push edx
add ecx, 0x2c
jmp 0x468752
mov eax, dword [eax + 0x34]
mov edi, dword [ebp + 0x1c]
push 0x7de6c0
push eax
lea ecx, [esp + 0x20]
call fcn.006fb5d0
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.006fbef0
lea edx, [esp + 0x28]
jmp 0x46874e
mov edi, dword [ebp + 0x1c]
push 0x7de6c0
push 0
call fcn.0047b3b0
mov dword [esp + 0x78], eax
fild dword [esp + 0x78]
fld qword [0x747600]
call sub.MSVCRT.dll__CIfmod
fstp dword [esp]
lea ecx, [esp + 0x20]
call fcn.006fb5d0
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.006fbef0
lea edx, [esp + 0x28]
push edx
lea ecx, [edi + 0x2c]
call fcn.006e93d0
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 4]
add eax, 0x30
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov dword [eax + 4], edx
mov ecx, dword [ebp + 0xc]
mov dword [eax + 8], ecx
mov esi, dword [esi + 0x28]
test esi, esi
je 0x4688fd
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x70]
push esi
call fcn.004553b0
test eax, eax
je 0x4688fd
lea ebx, [eax + 0x1c]
test ebx, ebx
je 0x4688fd
mov dword [esp + 0x10], 8
mov ecx, dword [ebx + 8]
xor eax, eax
test ecx, ecx
jbe 0x4687bf
mov ecx, dword [ebx + 0xc]
cmp dword [ecx], 0
jne 0x4687cb
mov edx, dword [ebx + 8]
inc eax
add ecx, 4
cmp eax, edx
jb 0x4687af
xor eax, eax
test eax, eax
je 0x4688eb
jmp 0x4687d7
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + eax*4]
jmp 0x4687c1
mov eax, dword [esp + 0x70]
lea esi, [eax + 4]
mov ecx, 0xe
lea edi, [esp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x4687f2
mov dword [esp + 0x70], ecx
jmp 0x468820
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 4]
mov esi, dword [ebx + 8]
inc eax
cmp eax, esi
jae 0x468818
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + eax*4]
mov edx, dword [ecx]
test edx, edx
jne 0x46886c
inc eax
add ecx, 4
cmp eax, esi
jb 0x46880a
mov dword [esp + 0x70], 0
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x68]
jne 0x4688df
mov edx, dword [ecx]
mov dword [esp + 0x40], ebp
call dword [edx + 0x20]
mov esi, eax
mov eax, dword [ebx]
push esi
mov ecx, ebx
mov dword [esp + 0x70], esi
call dword [eax + 4]
mov ecx, dword [ebx + 0xc]
mov ebp, dword [ecx + eax*4]
test ebp, ebp
mov dword [esp + 0x14], eax
je 0x46889c
mov eax, dword [ebp]
mov edx, dword [ebx]
push eax
push esi
mov ecx, ebx
call dword [edx + 8]
test al, al
jne 0x468872
mov ebp, dword [ebp + 0x3c]
test ebp, ebp
jne 0x468853
jmp 0x46889c
mov dword [esp + 0x70], edx
jmp 0x468820
mov edx, dword [ebx]
push ebp
mov ecx, ebx
call dword [edx + 0x10]
mov eax, dword [ebx]
sub esp, 0x38
mov edi, esp
mov ecx, 0xe
lea esi, [esp + 0x60]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xa4]
push ecx
push ebp
mov ecx, ebx
call dword [eax + 0xc]
jmp 0x4688db
push 0x40
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edx, dword [ebx]
sub esp, 0x34
mov ebp, eax
mov eax, dword [esp + 0xa4]
mov edi, esp
mov ecx, 0xe
lea esi, [esp + 0x60]
push eax
rep movsd dword es:[edi], dword [esi]
push ebp
mov ecx, ebx
call dword [edx + 0xc]
mov ecx, dword [ebx + 0xc]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx + eax*4]
mov dword [ebp + 0x3c], edx
mov ecx, dword [ebx + 0xc]
mov dword [ecx + eax*4], ebp
inc dword [ebx + 4]
mov ebp, dword [esp + 0x64]
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x4687d3
mov eax, dword [esp + 0x10]
add ebx, 0x10
dec eax
mov dword [esp + 0x10], eax
jne 0x4687a3
mov ecx, dword [ebp + 0x1c]
call fcn.006eb0e0
mov ecx, dword [ebp + 0x1c]
call fcn.006eb380
mov edx, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x1c]
push 1
push 1
push edx
call fcn.006eb000
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 0x10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 0x10