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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
mov ebx, eax
mov eax, dword [ebx]
mov dword [esp + 8], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x10], eax
movsx eax, word [ebx + 0x4c]
mov ecx, dword [ebx + eax*4 + 0x78]
mov dx, word [ebx + eax*2 + 0x4e]
push esi
push edi
mov dword [esp + 0x24], eax
cmp dx, word [ecx + 0x12]
jae 0x4386fe
cmp byte [ebx + 0x49], 1
jne 0x4386fe
mov edi, dword [ebx + eax*4 + 0x78]
mov eax, dword [edi + 0x40]
movzx ecx, dx
movzx esi, byte [eax + ecx*2]
movzx edx, word [edi + 0x14]
lea eax, [eax + ecx*2]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [eax + 1]
shl esi, 8
or esi, ecx
and esi, edx
add esi, dword [edi + 0x38]
cmp byte [edi + 5], 0
mov dword [esp + 0x20], edi
jne 0x4384ff
lea eax, [esp + 0x14]
push eax
push ebx
mov dword [esp + 0x1c], 0
call fcn.004357e0
add esp, 8
test eax, eax
jne 0x438703
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
mov ecx, dword [ebx + 0x3c]
test eax, eax
je 0x43853d
lea ecx, [ecx]
cmp eax, ebx
je 0x43851d
test ecx, ecx
je 0x438526
cmp dword [eax + 0x3c], ecx
je 0x438526
mov eax, dword [eax + 8]
test eax, eax
jne 0x438510
jmp 0x43853d
test eax, eax
je 0x43853d
mov edi, ecx
call fcn.00430c90
test eax, eax
jne 0x438703
mov edi, dword [esp + 0x20]
cmp dword [ebx + 0x10], 0
jne 0x438582
mov eax, dword [ebx + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [edx + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], ecx
test eax, eax
je 0x438582
test byte [eax + 0x48], 0x10
je 0x43857b
mov ecx, dword [eax + 0x18]
cmp ecx, dword [esp + 0x28]
jne 0x43857b
mov edx, dword [eax + 0x1c]
cmp edx, dword [esp + 0x2c]
jne 0x43857b
mov byte [eax + 0x49], 0
mov eax, dword [eax + 8]
test eax, eax
jne 0x43855f
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 0x94]
cmp edx, dword [ecx + 0x98]
jbe 0x4385a1
push eax
call fcn.0042cfa0
add esp, 4
jmp 0x4385a6
call fcn.0042cdf0
test eax, eax
jne 0x438703
lea eax, [esp + 0x10]
push eax
mov eax, esi
mov ecx, edi
call fcn.00436440
movzx edx, word [esp + 0x14]
add esp, 4
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
push edx
push eax
mov esi, edi
call fcn.004369d0
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
jne 0x438703
cmp byte [edi + 5], al
jne 0x4386a0
movsx ecx, word [ebx + 0x4c]
mov edi, dword [ebx + ecx*4 + 0x78]
mov edx, dword [esp + 0x24]
mov eax, dword [ebx + edx*4 + 0x7c]
mov ecx, dword [eax + 0x48]
movzx edx, word [edi + 0x12]
mov eax, dword [edi + 0x40]
movzx esi, byte [eax + edx*2 - 2]
lea eax, [eax + edx*2]
movzx edx, word [edi + 0x14]
mov dword [esp + 0x28], ecx
movzx ecx, byte [eax - 1]
shl esi, 8
or esi, ecx
and esi, edx
add esi, dword [edi + 0x38]
mov eax, edi
push esi
call fcn.004312e0
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x50]
movzx eax, ax
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x44]
add esp, 4
mov dword [esp + 0x18], edx
call fcn.0042d160
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x28]
add edx, 4
push edx
add esi, 0xfffffffc
push esi
push eax
mov eax, dword [esp + 0x2c]
call fcn.00436ab0
movzx eax, word [edi + 0x12]
mov edx, dword [esp + 0x24]
add esp, 0x14
lea ecx, [esp + 0x14]
push ecx
push edx
dec eax
push eax
mov esi, edi
call fcn.004369d0
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
jne 0x438703
mov edi, ebx
call fcn.00438020
mov esi, eax
test esi, esi
jne 0x4386f5
movsx ecx, word [ebx + 0x4c]
mov edi, dword [esp + 0x24]
cmp ecx, edi
jle 0x4386ee
movzx eax, word [ebx + 0x4c]
movsx edx, ax
mov ecx, dword [ebx + edx*4 + 0x78]
dec eax
mov word [ebx + 0x4c], ax
test ecx, ecx
je 0x4386d9
mov eax, dword [ecx + 0x44]
push eax
call fcn.0042cb80
add esp, 4
movsx ecx, word [ebx + 0x4c]
cmp ecx, edi
jg 0x4386b9
mov edi, ebx
call fcn.00438020
mov esi, eax
test esi, esi
jne 0x4386f5
mov eax, ebx
call fcn.00434ce0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret