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

Disassembly:
sub esp, 0x24
push ebx
push ebp
push esi
mov esi, dword [esp + 0x34]
xor ebp, ebp
push edi
mov eax, dword [esi + 0x1d4]
mov ebx, dword [esi + 0x14]
test ah, 0x80
mov dword [esp + 0x10], ebp
mov dword [esp + 0x38], ebx
je 0x4236eb
mov edi, dword [esi + 0xd4]
cmp edi, ebp
je 0x4235e6
mov eax, dword [edi + 0xd8]
cmp eax, ebp
je 0x4235b7
mov ecx, dword [edi + 0xdc]
mov dword [eax + 0xdc], ecx
mov edx, dword [edi + 0xdc]
mov eax, dword [edi + 0xd8]
push edi
mov dword [edx], eax
call fcn.00423b20
add esp, 4
cmp eax, ebp
je 0x4235dc
cmp dword [esp + 0x10], ebp
jne 0x4235dc
mov dword [esp + 0x10], eax
mov edi, dword [edi + 0xd8]
cmp edi, ebp
jne 0x4235a1
mov edi, dword [esp + 0x40]
and edi, 0x18
jne 0x423613
mov eax, dword [esi + 0x1d4]
test ah, 1
jne 0x423613
push ebp
push esi
call dword [esi + 0x184]
add esp, 8
cmp eax, ebp
je 0x423613
cmp dword [esp + 0x10], ebp
jne 0x423613
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xc4]
cmp eax, ebp
je 0x423641
push eax
call dword [eax + 0xbc]
add esp, 4
cmp eax, ebp
jne 0x423637
mov eax, dword [esi + 0xc4]
cmp eax, ebp
jne 0x42361d
jmp 0x423641
cmp dword [esp + 0x10], ebp
jne 0x423641
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xbc]
cmp eax, ebp
je 0x42366e
push eax
call fcn.004568d0
add esp, 4
cmp eax, ebp
jne 0x423664
mov eax, dword [esi + 0xbc]
cmp eax, ebp
jne 0x42364b
jmp 0x42366e
cmp dword [esp + 0x10], ebp
jne 0x42366e
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xcc]
cmp eax, ebp
je 0x42369c
push eax
call dword [eax + 0xbc]
add esp, 4
cmp eax, ebp
jne 0x423692
mov eax, dword [esi + 0xcc]
cmp eax, ebp
jne 0x423678
jmp 0x42369c
cmp dword [esp + 0x10], ebp
jne 0x42369c
mov dword [esp + 0x10], eax
cmp edi, ebp
jne 0x4236c3
mov eax, dword [esi + 0x1d4]
test ah, 1
jne 0x4236c3
mov eax, dword [esi + 0x1c]
push eax
call dword [eax + 0x78]
add esp, 4
cmp eax, ebp
je 0x4236c3
cmp dword [esp + 0x10], ebp
jne 0x4236c3
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xb0]
cmp eax, ebp
je 0x4236eb
test byte [eax + 0x20], 4
je 0x4236eb
push eax
push ebx
call fcn.004508d0
add esp, 8
cmp eax, ebp
je 0x4236eb
cmp dword [esp + 0x10], ebp
jne 0x4236eb
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x48]
mov edi, 5
cmp eax, ebp
je 0x423758
mov ecx, dword [esp + 0x3c]
cmp ecx, ebp
je 0x42370e
lea edx, [esi + 0x54]
push eax
push edx
push ecx
push ebx
call fcn.0044f750
add esp, 0x10
mov ecx, dword [esi + 0x48]
push ebp
lea eax, [esp + 0x18]
push 1
push eax
push ebp
push ecx
push ebx
mov dword [esp + 0x2c], edi
call fcn.00431740
add esp, 0x18
cmp eax, ebp
je 0x423736
cmp dword [esp + 0x10], ebp
jne 0x423736
mov dword [esp + 0x10], eax
mov edx, dword [esi + 0x48]
push edx
push ebx
call dword [ebx + 0x1a8]
add esp, 8
cmp eax, ebp
je 0x423752
cmp dword [esp + 0x10], ebp
jne 0x423752
mov dword [esp + 0x10], eax
mov dword [esi + 0x48], ebp
mov dword [esi + 0x54], ebp
mov eax, dword [esi + 0x1d4]
test ah, 0x20
je 0x423787
cmp dword [ebx + 0x178], ebp
je 0x423787
mov eax, dword [esi + 0x28]
push eax
push ebx
call dword [ebx + 0x1a8]
add esp, 8
cmp eax, ebp
je 0x423787
cmp dword [esp + 0x10], ebp
jne 0x423787
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], edi
cmp eax, ebp
je 0x4237a8
mov ecx, dword [ebx + 0x1bc]
push eax
mov edx, dword [ecx + 0x18]
push edx
push ebx
call fcn.00439be0
add esp, 0xc
mov dword [esi + 0x24], ebp
mov eax, dword [esi + 0x68]
lea edi, [esi + 0x68]
cmp eax, ebp
je 0x4237bf
push eax
mov eax, dword [esi + 0x14]
push eax
call fcn.00418640
add esp, 8
mov eax, dword [esi + 0x80]
lea ebx, [esi + 0x80]
cmp eax, ebp
je 0x4237dc
mov ecx, dword [esi + 0x14]
push eax
push ecx
call fcn.00418640
add esp, 8
mov eax, dword [esi + 0x98]
lea ebp, [esi + 0x98]
test eax, eax
je 0x4237f9
mov edx, dword [esi + 0x14]
push eax
push edx
call fcn.00418640
add esp, 8
mov ecx, 6
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, 6
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, 6
mov edi, ebp
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x38]
xor ebx, ebx
mov eax, dword [edi + 0xbc]
cmp eax, ebx
je 0x423834
test byte [eax + 0x24], 1
jne 0x423834
push eax
push edi
call fcn.0042a340
add esp, 8
mov ecx, dword [esi + 0xb8]
cmp ecx, ebx
je 0x42385c
mov eax, dword [esi + 0xb4]
cmp eax, ebx
je 0x42384e
mov dword [eax + 0xb8], ecx
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0xb4]
mov dword [eax], ecx
mov eax, dword [edi + 0xbc]
cmp eax, ebx
je 0x423876
test byte [eax + 0x24], 1
jne 0x423876
push eax
push edi
call fcn.0042a420
add esp, 8
mov eax, dword [esi + 0x1c]
mov dword [esi + 0xb8], ebx
cmp eax, ebx
je 0x4238a8
mov edx, dword [esi + 0x1d4]
shr edx, 6
and edx, 4
push edx
push eax
call dword [eax + 0x3c]
add esp, 8
cmp eax, ebx
je 0x4238a5
cmp dword [esp + 0x10], ebx
jne 0x4238a5
mov dword [esp + 0x10], eax
mov dword [esi + 0x1c], ebx
mov eax, dword [esi + 0x14]
cmp dword [eax + 0x14c], ebx
je 0x4238df
test dword [esi + 0x1d4], 0x100000
je 0x4238c8
push ebx
push esi
call fcn.00464ed0
jmp 0x4238d3
mov ecx, dword [esp + 0x3c]
push ecx
push esi
call fcn.00464f90
add esp, 8
push esi
call fcn.00464b90
add esp, 4
lea eax, [esi + 0x28]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov eax, dword [esp + 0x3c]
cmp eax, ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x50], ebx
mov dword [esi + 0x64], ebx
je 0x42390c
mov dword [esi + 0x54], ebx
mov eax, dword [esi + 0x1d4]
pop edi
and eax, 0xfbeb5edf
mov dword [esi + 0x1d4], eax
mov eax, dword [esp + 0xc]
pop esi
pop ebp
pop ebx
add esp, 0x24
ret