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

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ecx, 0x100
lea edi, [esi + 0x358]
or eax, 0xffffffff
mov dword [esi + 0x758], 0
lea ebp, [esi + 0x9c]
rep stosd dword es:[edi], eax
mov dword [esi + 0x124], eax
mov eax, dword [esi + 0x120]
inc eax
mov dword [esp + 0x10], 0xc
mov dword [esi + 0x120], eax
mov edi, dword [ebp]
mov ecx, 8
mov eax, dword [edi + 0x7c]
xor eax, 1
mov dword [edi + 0x7c], eax
lea eax, [edi + 0x2c]
mov edx, dword [eax]
mov ebx, dword [edi + 0x7c]
add eax, 4
dec ecx
mov dword [edx + 0x30], ebx
jne 0x51f4b8
mov eax, dword [edi + 0x7c]
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0x10]
push ecx
test eax, eax
mov eax, dword [edi]
jne 0x51f4db
sub edx, 0xf
jmp 0x51f4de
add edx, 0xf
push edx
mov ecx, edi
call dword [eax + 0x28]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x18]
mov eax, dword [esp + 0x10]
add ebp, 4
dec eax
mov dword [esp + 0x10], eax
jne 0x51f4a4
mov eax, dword [esi + 0xcc]
test eax, eax
jne 0x51f5b3
mov eax, dword [esi + 0x34c]
test eax, eax
je 0x51f5b3
mov ecx, dword [esi + 0x98]
mov edx, dword [ecx]
call dword [edx + 0x14]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x98]
add edx, 0x16e
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x10]
add edx, 0x81
push edx
call dword [eax + 0x28]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x10]
push eax
push ecx
mov ecx, dword [esi + 0x194]
call fcn.004f2700
mov edx, dword [esi + 0x98]
push 0x58
mov dword [edx + 0x98], 0
call fcn.004d8630
add esp, 4
test eax, eax
je 0x51f5a5
push 0
lea ecx, [esi + 0x78]
sub esp, 0x10
mov edi, dword [ecx]
mov edx, esp
mov dword [edx], edi
mov edi, dword [ecx + 4]
mov dword [edx + 4], edi
mov edi, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [edx + 8], edi
mov dword [edx + 0xc], ecx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push edx
push ecx
mov ecx, eax
call fcn.004db9a0
jmp 0x51f5a7
xor eax, eax
mov ecx, dword [esi + 0x98]
push eax
call fcn.00485230
mov ecx, dword [esp + 0x20]
lea ebx, [esi + 0x9c]
sub ecx, esi
mov dword [esp + 0x14], 0xc
mov dword [esp + 0x18], ecx
mov ebp, 0x2c
mov edi, 0x48
mov edx, dword [ecx + ebx]
mov eax, dword [ebp + edx]
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x51f61c
mov ecx, dword [eax + 0x84]
push 1
lea edx, [esp + 0x14]
push ecx
push edx
mov ecx, esi
mov dword [esp + 0x1c], 0
call fcn.005202b0
mov ecx, dword [ebx]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [edi + ecx]
call fcn.00523050
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
call dword [edx + 0x18]
mov ecx, dword [esp + 0x18]
sub edi, 4
add ebp, 4
cmp edi, 0x28
jg 0x51f5d5
mov eax, dword [esp + 0x14]
add ebx, 4
dec eax
mov dword [esp + 0x14], eax
jne 0x51f5cb
mov eax, dword [esp + 0x20]
lea ebp, [esi + 0x88]
push 0
mov ecx, dword [eax + 0x88]
mov edx, dword [ecx + 0x84]
mov ecx, esi
push edx
push ebp
call fcn.005202b0
mov edx, dword [esi + 0x14]
mov ecx, dword [ebp]
add edx, 0x16e
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x10]
add edx, 0x81
push edx
call dword [eax + 0x28]
mov ecx, dword [ebp]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ebx, dword [esp + 0x20]
lea edi, [esi + 0x8c]
push 0
mov ecx, dword [ebx + 0x8c]
mov edx, dword [ecx + 0x84]
mov ecx, esi
push edx
push edi
call fcn.005202b0
mov edx, dword [esi + 0x14]
mov ecx, dword [edi]
add edx, 0x16e
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x128]
mov edx, dword [edx*4 + 0x5803a0]
add edx, dword [esi + 0x10]
push edx
call dword [eax + 0x28]
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [ebx + 0x90]
lea edi, [esi + 0x90]
push 0
mov edx, dword [ecx + 0x84]
mov ecx, esi
push edx
push edi
call fcn.005202b0
mov edx, dword [esi + 0x14]
mov ecx, dword [edi]
mov ebx, dword [esi + 0x10]
add edx, 0x16e
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x128]
mov edx, dword [edx*4 + str._M]
add edx, ebx
push edx
call dword [eax + 0x28]
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov eax, dword [esi + 0xcc]
test eax, eax
jne 0x51f7c6
mov eax, dword [esi + 0x34c]
test eax, eax
je 0x51f7c6
mov ecx, dword [esi + 0x98]
mov edx, dword [ecx]
call dword [edx + 0x14]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x98]
add edx, 0x16e
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x10]
add edx, 0x81
push edx
call dword [eax + 0x28]
lea eax, [esp + 0x20]
lea ecx, [esp + 0x18]
push eax
push ecx
mov ecx, dword [esi + 0x194]
call fcn.004f2700
mov edx, dword [esi + 0x98]
push 0x58
mov dword [edx + 0x98], 0
call fcn.004d8630
add esp, 4
test eax, eax
je 0x51f7b8
push 0
lea ecx, [esi + 0x78]
sub esp, 0x10
mov edi, dword [ecx]
mov edx, esp
mov dword [edx], edi
mov edi, dword [ecx + 4]
mov dword [edx + 4], edi
mov edi, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [edx + 8], edi
mov dword [edx + 0xc], ecx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
push edx
push ecx
mov ecx, eax
call fcn.004db9a0
jmp 0x51f7ba
xor eax, eax
mov ecx, dword [esi + 0x98]
push eax
call fcn.00485230
lea ebx, [esi + 0x144]
mov ecx, ebx
call fcn.004631c0
test eax, eax
je 0x51f807
push 0
mov ecx, ebx
call fcn.004632b0
mov edi, eax
mov ecx, edi
call fcn.004b5e90
sub eax, 0xc
mov ecx, edi
push eax
call fcn.004b5e40
push edi
mov ecx, ebx
call fcn.00463150
mov ecx, ebx
call fcn.004631c0
test eax, eax
jne 0x51f7d7
mov ebp, dword [ebp]
test ebp, ebp
je 0x51f81c
mov edx, dword [ebp + 0x84]
mov ecx, esi
push edx
call fcn.005211e0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 4