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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push ebx
push esi
mov esi, ecx
mov dword [esp + 0xc], edx
mov edx, dword [ebp + 0x20]
push edi
mov dword [esp + 0x14], edx
cmp byte [esi + 0x42], 4
mov edi, dword [esi]
mov dword [esp + 0x18], 0
mov ecx, dword [edi + 4]
mov dword [esp + 0x1c], ecx
jne 0x4381ca
mov eax, dword [esi + 0x3c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0x40]
test al, 0x20
je 0x438200
mov ecx, dword [ecx + 8]
mov edx, dword [esi + 0x34]
test ecx, ecx
je 0x4381f8
nop dword [eax + eax]
cmp ecx, esi
je 0x4381f1
test edx, edx
je 0x43826d
cmp dword [ecx + 0x34], edx
je 0x43826d
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4381e0
and al, 0xdf
mov byte [esi + 0x40], al
mov edx, dword [ebp + 0x20]
cmp dword [esi + 0x48], 0
mov ebx, dword [ebp + 0xc]
jne 0x4382b1
cmp byte [edi + 0xb], 0
je 0x438243
mov eax, dword [edi + 4]
mov byte [edi + 0xb], 0
mov eax, dword [eax + 8]
test eax, eax
je 0x438243
mov ecx, dword [ebp + 8]
test byte [eax + 0x40], 0x10
je 0x43823c
mov byte [edi + 0xb], 1
cmp dword [eax + 0x10], ecx
jne 0x43823c
cmp dword [eax + 0x14], ebx
jne 0x43823c
mov byte [eax + 0x42], 0
mov eax, dword [eax + 8]
test eax, eax
jne 0x438224
test byte [esi + 0x40], 2
mov eax, dword [ebp + 8]
je 0x43828c
test ebx, ebx
jl 0x43828c
jg 0x438256
test eax, eax
je 0x43828c
sub eax, 1
mov ecx, ebx
sbb ecx, 0
cmp dword [esi + 0x10], eax
jne 0x438289
cmp dword [esi + 0x14], ecx
jne 0x438289
or eax, 0xffffffff
jmp 0x4382de
test ecx, ecx
je 0x4381f8
push esi
call fcn.0042fb10
add esp, 4
test eax, eax
je 0x4381fd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
test edx, edx
jne 0x4382e1
lea ecx, [esp + 0x14]
push ecx
push dword [ebp + 0x1c]
mov ecx, esi
push ebx
push eax
call fcn.00433fd0
mov ecx, eax
add esp, 0x10
test ecx, ecx
je 0x4382da
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edx, edx
jne 0x4382e1
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x14]
mov edx, dword [esp + 0x10]
push eax
push dword [ebp + 0x1c]
push ebx
push ecx
mov ecx, esi
call fcn.0042fb80
mov ecx, eax
add esp, 0x10
test ecx, ecx
jne 0x43843b
mov eax, dword [esp + 0x14]
mov dword [ebp + 0x20], eax
movsx eax, byte [esi + 0x44]
lea ecx, [esp + 0x18]
push ecx
push dword [ebp + 0x18]
push dword [ebp + 0x14]
mov edi, dword [esi + eax*4 + 0x78]
mov ecx, edi
push dword [ebp + 0x10]
mov eax, dword [esp + 0x2c]
push ebx
push dword [ebp + 8]
mov eax, dword [eax + 0x50]
mov edx, eax
push dword [esp + 0x28]
mov dword [esp + 0x38], eax
call fcn.004359e0
mov ecx, eax
add esp, 0x1c
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x43843b
movsx eax, byte [esi + 0x44]
movzx edx, word [esi + eax*2 + 0x50]
lea ecx, [esi + eax*2]
mov eax, dword [ebp + 0x20]
mov ebx, edx
test eax, eax
jne 0x4383db
mov ecx, dword [edi + 0x48]
test byte [ecx + 0x18], 4
mov edx, dword [ecx + 0x10]
je 0x43835e
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x14]
jb 0x43835e
cmp dword [edx + 0x60], 0
je 0x438382
call fcn.0042ab70
jmp 0x438378
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x438373
call fcn.0042c5f0
jmp 0x438378
call fcn.0042c3f0
mov ecx, eax
test ecx, ecx
jne 0x43843b
mov eax, dword [edi + 0x40]
mov ax, word [eax + ebx*2]
mov ch, al
mov cl, ah
movzx eax, word [edi + 0x14]
movzx edx, cx
and edx, eax
add edx, dword [edi + 0x38]
cmp byte [edi + 5], 0
jne 0x4383a7
mov ecx, dword [esp + 0x1c]
mov eax, dword [edx]
mov dword [ecx], eax
lea eax, [esp + 0x10]
mov ecx, edi
push eax
call fcn.004357e0
add esp, 4
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
mov edx, ebx
mov ecx, edi
push eax
movzx eax, word [esp + 0x14]
push eax
call fcn.00435e10
mov ecx, dword [esp + 0x1c]
add esp, 8
test ecx, ecx
jne 0x43843b
jmp 0x4383ee
jns 0x4383ee
cmp word [edi + 0x12], 0
jbe 0x4383ee
lea eax, [edx + 1]
mov word [ecx + 0x50], ax
movzx ebx, ax
lea eax, [esp + 0x14]
mov edx, ebx
push eax
push 0
push 0
push dword [esp + 0x24]
mov ecx, edi
push dword [esp + 0x2c]
call fcn.00435f30
mov ecx, dword [esp + 0x28]
xor eax, eax
add esp, 0x14
mov word [esi + 0x24], ax
test ecx, ecx
jne 0x43843b
cmp byte [edi + 1], al
je 0x43843b
and byte [esi + 0x40], 0xfd
mov ecx, esi
call fcn.00437ff0
mov ecx, eax
movsx eax, byte [esi + 0x44]
mov eax, dword [esi + eax*4 + 0x78]
mov byte [eax + 1], 0
mov byte [esi + 0x42], 0
pop edi
pop esi
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret