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

Disassembly:
sub esp, 0xc
push ebx
mov ebx, ecx
push ebp
xor ebp, ebp
mov ecx, dword [ebx + 0x90]
push esi
cmp ecx, ebp
push edi
je 0x51e5bc
push ebp
call fcn.0044a1b0
mov ecx, dword [ebx + 0x90]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [ebx + 0x90]
cmp ecx, ebp
je 0x51e5b6
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [ebx + 0x90], ebp
mov ecx, dword [ebx + 0x94]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [ebx + 0x88]
cmp ecx, ebp
je 0x51e5f8
push ebp
call fcn.00485230
mov ecx, dword [ebx + 0x88]
mov edx, dword [ecx]
call dword [edx + 0x14]
mov ecx, dword [ebx + 0x88]
cmp ecx, ebp
je 0x51e5f2
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [ebx + 0x88], ebp
mov ecx, dword [ebx + 0x8c]
cmp ecx, ebp
je 0x51e629
push ebp
call fcn.00485230
mov ecx, dword [ebx + 0x8c]
mov edx, dword [ecx]
call dword [edx + 0x14]
mov ecx, dword [ebx + 0x8c]
cmp ecx, ebp
je 0x51e623
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [ebx + 0x8c], ebp
mov ecx, dword [ebx + 0x1a8]
cmp ecx, ebp
je 0x51e64e
mov edx, dword [ecx]
call dword [edx + 0x14]
mov ecx, dword [ebx + 0x1a8]
cmp ecx, ebp
je 0x51e648
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [ebx + 0x1a8], ebp
mov ecx, dword [ebx + 0x194]
call fcn.004f2720
mov ecx, dword [ebx + 0x194]
call fcn.004f24b0
cmp dword [ebx + 0x70], ebp
je 0x51e671
push ebp
mov ecx, ebx
call fcn.0044a1b0
lea edi, [ebx + 0xdc]
mov ecx, edi
call fcn.004631c0
test eax, eax
je 0x51e6ab
push ebp
mov ecx, edi
call fcn.004632b0
mov esi, eax
cmp esi, ebp
je 0x51e698
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx]
push esi
mov ecx, edi
call fcn.00463150
mov ecx, edi
call fcn.004631c0
test eax, eax
jne 0x51e682
lea esi, [ebx + 0x144]
mov dword [ebx + 0x330], ebp
mov ecx, esi
call fcn.004631c0
test eax, eax
je 0x51e6dd
push ebp
mov ecx, esi
call fcn.004632b0
push eax
mov ecx, esi
call fcn.00463150
mov ecx, esi
call fcn.004631c0
test eax, eax
jne 0x51e6c2
mov esi, dword [ebx + 0x198]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x14]
mov edi, eax
mov dword [esi + 0xc], ebp
mov ebp, dword [ecx]
mov ecx, edi
mov edx, dword [edi]
mov dword [esp + 0x18], eax
call dword [edx + 0x38]
push eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x34]
mov ecx, dword [esi + 0x14]
push eax
call dword [ebp + 0x28]
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0x18]
mov ebp, dword [ecx]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x38]
push eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x34]
mov ecx, dword [esi + 0x18]
push eax
call dword [ebp + 0x28]
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
call dword [edx + 0x34]
mov ecx, dword [esi + 0x14]
mov ebp, eax
mov eax, dword [ecx]
call dword [eax + 0x38]
lea edi, [esi + 0x1c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], 5
mov ecx, dword [edi]
mov eax, dword [esp + 0x14]
push eax
push ebp
mov edx, dword [ecx]
call dword [edx + 0x28]
mov eax, dword [esp + 0x10]
add edi, 4
add ebp, 0x3c
dec eax
mov dword [esp + 0x10], eax
jne 0x51e74d
mov edi, 5
mov dword [esi + 0x10], edi
mov esi, dword [esp + 0x18]
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 0x18]
add esi, 4
dec edi
jne 0x51e777
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
lea edx, [ebx + 0x78]
xor ebp, ebp
lea esi, [eax + 0x13c]
add eax, 0x13
push esi
lea esi, [ecx + 0xf5]
push esi
add ecx, 0xd
push eax
push ecx
push edx
mov dword [ebx + 0xd8], ebp
call dword [sym.imp.USER32.dll_SetRect]
lea edi, [ebx + 0x358]
mov ecx, 0x100
or eax, 0xffffffff
mov dword [ebx + 0x118], ebp
mov dword [ebx + 0x11c], ebp
mov dword [ebx + 0xcc], ebp
mov dword [ebx + 0x758], ebp
rep stosd dword es:[edi], eax
mov ecx, dword [ebx + 0x98]
mov dword [ebx + 0x124], eax
mov eax, dword [ecx]
call dword [eax + 0x14]
lea edi, [ebx + 0x9c]
mov dword [esp + 0x10], 0xc
mov ecx, dword [edi]
mov esi, 0x2c
mov dword [ecx + 0x84], ebp
mov edx, dword [edi]
mov ecx, dword [esi + edx]
lea eax, [esi + edx]
cmp dword [ecx + 0x3c], ebp
je 0x51e837
mov edx, ecx
mov ecx, dword [edx + 0x3c]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi]
mov edx, dword [esi + ecx]
mov ecx, dword [edx + 0x3c]
cmp ecx, ebp
je 0x51e82f
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [edi]
mov edx, dword [esi + ecx]
mov dword [edx + 0x3c], ebp
add esi, 4
cmp esi, 0x4c
jl 0x51e806
mov eax, dword [esp + 0x10]
add edi, 4
dec eax
mov dword [esp + 0x10], eax
jne 0x51e7f9
mov eax, dword [ebx + 0x9c]
lea edi, [ebx + 0x9c]
cmp dword [eax + 0x7c], ebp
jne 0x51e97c
mov dword [esp + 0x10], 0xc
mov esi, dword [edi]
mov ecx, 8
mov eax, dword [esi + 0x7c]
xor eax, 1
mov dword [esi + 0x7c], eax
lea eax, [esi + 0x2c]
mov edx, dword [eax]
mov ebp, dword [esi + 0x7c]
add eax, 4
dec ecx
mov dword [edx + 0x30], ebp
jne 0x51e87d
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
push ecx
test eax, eax
mov eax, dword [esi]
jne 0x51e8a0
sub edx, 0xf
jmp 0x51e8a3
add edx, 0xf
push edx
mov ecx, esi
call dword [eax + 0x28]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov eax, dword [esp + 0x10]
add edi, 4
dec eax
mov dword [esp + 0x10], eax
jne 0x51e86a
mov eax, dword [ebx + 0xcc]
test eax, eax
jne 0x51e97c
mov eax, dword [ebx + 0x34c]
test eax, eax
je 0x51e97c
mov ecx, dword [ebx + 0x98]
mov edx, dword [ecx]
call dword [edx + 0x14]
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x98]
add edx, 0x16e
mov eax, dword [ecx]
push edx
mov edx, dword [ebx + 0x10]
add edx, 0x81
push edx
call dword [eax + 0x28]
lea eax, [esp + 0x18]
lea ecx, [esp + 0x14]
push eax
push ecx
mov ecx, dword [ebx + 0x194]
call fcn.004f2700
mov edx, dword [ebx + 0x98]
push 0x58
mov dword [edx + 0x98], 0
call fcn.004d8630
add esp, 4
test eax, eax
je 0x51e96e
mov edx, dword [ebx + 0x78]
push 0
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [ebx + 0x7c]
mov dword [ecx + 4], edx
mov edx, dword [ebx + 0x80]
mov dword [ecx + 8], edx
mov edx, dword [ebx + 0x84]
mov dword [ecx + 0xc], edx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push ecx
push edx
mov ecx, eax
call fcn.004db9a0
jmp 0x51e970
xor eax, eax
mov ecx, dword [ebx + 0x98]
push eax
call fcn.00485230
mov ecx, ebx
call fcn.00521db0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret