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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov ebp, edx
call 0x43755d
pop eax
add edx, 0x2c
mov dword [esp], ecx
cmp byte [ebp + 0x2c], 0x14
mov dword [esp + 0x6c], edx
mov dword [esp + 0x48], eax
jne 0x437579
mov byte [esp + 0xc], 0x14
jmp 0x437590
lea esi, [esp + 0xc]
mov ecx, esi
call fcn.00437f60
mov ecx, dword [esp]
cmp byte [esi], 0x14
jne 0x437b25
cmp dword [ebp + 0x3c], 0
je 0x437b1e
lea ecx, [esp + 0xc]
call fcn.00438098
mov dword [esp + 0x20], ebp
mov ecx, dword [ebp]
mov ebx, ebp
test ecx, ecx
mov dword [esp + 0x28], ecx
je 0x4375da
cmp ecx, 1
jne 0x4375e9
mov ebx, dword [esp + 0x20]
mov eax, 0
mov esi, dword [ebx + 0x18]
mov edi, dword [ebx + 0x14]
mov edx, dword [ebx + 4]
mov ebp, esi
sub ebp, edi
cmovb ebp, eax
cmp edx, ebp
jbe 0x437dc5
cmp byte [ebx + 0x1c], 0
jne 0x437ce2
mov edi, dword [ebx + 0x10]
jmp 0x4375ef
mov ebx, dword [esp + 0x20]
xor edi, edi
mov ebp, dword [ebx + 0x24]
mov esi, dword [ebx + 0x28]
mov ecx, ebp
mov edx, esi
push dword [ebx + 0x3c]
push edi
call fcn.004380a2
pop ecx
pop ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
and dword [esp + 0x7c], 0
lea ebx, [esp + 0x74]
lea ecx, [esp + 0x2c]
mov edx, ebx
call fcn.004318fc
cmp byte [esp + 0x2c], 0x14
jne 0x437b47
movzx ecx, byte [esp + 0x2d]
mov dword [esp + 0x5c], esi
call fcn.00438238
movzx esi, dl
cmp al, 6
je 0x437b64
mov ecx, esi
mov dword [esp + 0x58], ebp
movzx ebp, al
shl ecx, 8
or ecx, ebp
cmp cl, 5
je 0x437b7c
mov byte [esp + 4], dl
lea ecx, [esp + 0x2c]
mov edx, ebx
mov byte [esp + 0x50], al
mov dword [esp + 8], edi
call fcn.00434b40
cmp byte [esp + 0x2c], 0x14
push 0xa
pop edi
jne 0x437680
mov edi, dword [esp + 0x2e]
mov ecx, edi
movzx eax, di
mov edx, edi
and ecx, 0xff000000
cmp eax, 0xa
cmove ecx, eax
and edx, 0xff0000
or edx, ecx
shr edx, 0x10
cmp ax, 0xa
je 0x437b85
cmp eax, 9
jne 0x4376be
mov eax, edx
and eax, 0xff00
cmp ax, 0x300
jne 0x437ba0
mov dword [esp + 0x70], edx
lea ecx, [esp + 0x2c]
mov edx, ebx
call fcn.00431b8e
movzx ebx, word [esp + 0x2e]
mov eax, 1
shl ebx, 0x10
cmp byte [esp + 0x2c], 0x14
cmovne ebx, eax
test bl, bl
jne 0x437bb1
shr ebx, 0x10
sub esp, 4
mov ecx, ebp
mov edx, esi
push 3
call fcn.0043819b
pop ecx
pop edx
test bx, bx
jne 0x43770a
test al, al
jne 0x437bc5
cmp bx, 0x47ff
ja 0x437bce
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x74]
push ebx
call fcn.00431a96
pop eax
cmp dword [esp + 0x2c], 0
jne 0x437c3f
mov ecx, dword [esp + 0x30]
lea esi, [esp + 0x30]
mov al, byte [esp + 0x34]
mov edx, dword [esi + 5]
mov esi, dword [esi + 8]
test ecx, ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x63], esi
je 0x437c64
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x63]
lea ebx, [esp + 0x85]
mov dword [ebx + 3], esi
mov dword [ebx], edx
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0xc]
lea edx, [esp + 0x80]
mov byte [esp + 0x84], al
call fcn.0043196d
mov eax, dword [esp + 0x70]
mov dl, byte [esp + 0x50]
mov cl, byte [esp + 4]
mov word [esp + 0x18], di
mov word [esp + 0x1a], ax
mov byte [esp + 0x1c], dl
mov byte [esp + 0x1d], cl
mov ebx, dword [esp + 0xc]
cmp ebx, 0x80000000
je 0x437c87
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x10]
movzx ebp, word [esp + 0x18]
movzx esi, word [esp + 0x1a]
movzx ecx, word [esp + 0x1e]
mov dword [esp + 4], eax
mov al, byte [esp + 0x1c]
add edx, dword [esp + 0x7c]
mov ah, byte [esp + 0x1d]
test al, al
mov dword [esp + 8], edx
jne 0x4377ef
cmp dword [esp + 0x28], 2
je 0x437ca0
mov edx, dword [esp + 0xa4]
cmp byte [edx + 0x29], 2
jne 0x4378cc
mov word [esp + 0x50], cx
mov ecx, edx
mov edx, dword [edx + 0x14]
mov edx, dword [edx + 0xc]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edi
mov edi, dword [esp + 4]
mov dword [esp + 0x14], edi
mov word [esp + 0x18], bp
mov word [esp + 0x1a], si
mov byte [esp + 0x1c], al
mov byte [esp + 0x1d], ah
movzx eax, word [esp + 0x50]
mov edi, dword [ecx + 0x20]
mov esi, dword [ecx + 0x24]
mov ebp, ecx
mov word [esp + 0x1e], ax
mov eax, dword [ecx + 0x10]
push esi
push edi
lea ecx, [esp + 0x14]
push ecx
push eax
lea eax, [esp + 0x3c]
push eax
call edx
add esp, 0x14
mov ebx, dword [esp + 0x2c]
cmp ebx, 0x80000000
jne 0x4378e8
cmp byte [esp + 0x30], 5
mov ebx, dword [esp]
mov ebp, dword [esp + 0x20]
jne 0x437930
mov eax, dword [esp + 0xa4]
cmp dword [eax], 0
je 0x437930
mov eax, dword [eax + 4]
sub eax, dword [esp + 4]
jb 0x437930
mov ecx, dword [esp + 0xa4]
mov dword [ecx], 1
mov dword [ecx + 4], eax
lea ecx, [esp + 0x30]
call fcn.004380c1
mov eax, dword [esp]
mov edi, dword [esp + 0x68]
movzx esi, word [esp + 0x56]
mov dl, byte [esp + 0x27]
mov dh, byte [esp + 0x26]
mov ecx, 0x80000000
jmp 0x437964
mov dword [esp + 0x4c], edi
mov word [esp + 0x24], bp
mov edi, dword [esp + 4]
mov edx, eax
mov dh, ah
mov eax, dword [esp]
mov ebp, dword [esp + 0x20]
mov ecx, ebx
jmp 0x437964
mov eax, dword [esp + 0x30]
add edi, 1
movzx ecx, word [esp + 0x38]
mov dl, byte [esp + 0x3c]
mov dh, byte [esp + 0x3d]
mov dword [ebp + 0x20], edi
adc esi, 0
mov dword [ebp + 0x24], esi
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x34]
mov word [esp + 0x24], cx
movzx ecx, word [esp + 0x3a]
mov edi, eax
movzx eax, word [esp + 0x3e]
mov esi, ecx
mov ecx, ebx
mov word [esp + 0x42], ax
mov eax, dword [esp]
jmp 0x437964
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
movzx esi, word [esp + 0x3a]
mov dl, byte [esp + 0x3c]
mov dh, byte [esp + 0x3d]
mov ecx, 0x80000001
mov dword [esp + 0x4c], eax
movzx eax, word [esp + 0x38]
mov word [esp + 0x24], ax
movzx eax, word [esp + 0x3e]
mov word [esp + 0x42], ax
mov eax, ebx
cmp ecx, 0x80000000
mov dword [esp + 0x68], edi
mov word [esp + 0x56], si
mov byte [esp + 0x27], dl
mov byte [esp + 0x26], dh
je 0x437a3f
cmp ecx, 0x80000001
je 0x437cf0
mov dword [esp + 4], ecx
sub esp, 4
movzx ecx, dl
movzx edx, dh
push 2
call fcn.0043819b
pop ecx
pop edx
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x4c]
cmp ecx, 2
je 0x4379b8
test al, al
jne 0x437d23
test al, al
jne 0x437d58
cmp ecx, 2
jne 0x437a5a
lea ecx, [esp + 0xc]
mov edx, ebx
push edi
call fcn.004381b1
pop eax
mov al, byte [esp + 0xc]
cmp al, 0x14
jne 0x437e9c
cmp dword [esp + 0x5c], edi
jb 0x437f44
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
push edi
push ebx
push dword [esp + 0x60]
call fcn.0046e6e0
mov edx, dword [esp + 0x34]
add esp, 0xc
mov eax, dword [esp + 0x20]
movzx ecx, word [esp + 0x24]
mov dword [eax], ebp
mov dword [eax + 4], edx
mov word [eax + 8], cx
mov word [eax + 0xa], si
mov esi, dword [esp + 8]
and dword [eax + 0xc], 0
mov dword [eax + 0x10], esi
and dword [eax + 0x14], 0
mov dword [eax + 0x18], edi
mov esi, edi
xor edi, edi
mov byte [eax + 0x1c], 0
jmp 0x437ae5
cmp dword [esp + 0x28], 2
jne 0x437d3e
mov edx, dword [esp + 8]
mov ecx, ebp
call fcn.0043810f
jmp 0x4375a7
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
lea esi, [eax + edi]
push esi
push eax
call fcn.004380a2
pop ecx
pop ecx
cmp edx, edi
jne 0x437f3f
push edi
push ebx
push eax
call fcn.0046e6e0
add esp, 0xc
mov eax, dword [esp + 8]
mov dword [ebp + 0x10], eax
mov esi, dword [ebp + 0x18]
add esi, edi
mov dword [ebp + 0x18], esi
cmp dword [ebp], 0
je 0x437aa5
mov edx, dword [ebp + 4]
mov edi, dword [ebp + 0x14]
mov ecx, dword [esp + 4]
jmp 0x437aed
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x28]
push esi
push edi
call fcn.004380a2
pop ecx
pop ecx
mov ebx, edx
lea ecx, [esp + 0xc]
mov edx, eax
push ebx
call fcn.004381b1
pop eax
mov al, byte [esp + 0xc]
cmp al, 0x14
jne 0x437ee5
mov eax, ebp
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x4c]
mov dword [eax], ebp
mov dword [eax + 4], edx
mov ecx, dword [esp + 4]
test ebp, ebp
je 0x437b01
mov ebp, esi
mov eax, 0
sub ebp, edi
cmovb ebp, eax
cmp edx, ebp
jbe 0x437db2
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 8]
cmp dword [ebp + 0x3c], eax
jbe 0x437da5
mov edx, ebx
call fcn.0041ae6b
jmp 0x4375a7
mov eax, 0x80000000
jmp 0x437b40
movsd xmm0, qword [esp + 0xc]
movsd xmm1, qword [esp + 0x14]
mov eax, 0x80000001
movsd qword [ecx + 0xc], xmm1
movsd qword [ecx + 4], xmm0
mov dword [ecx], eax
jmp 0x437c34
mov esi, dword [esp + 0x48]
xor eax, eax
mov ecx, 0x80000000
movzx edx, al
mov byte [esp + 0x10], al
mov al, 6
add esi, dword [edx*4 + 0x437f48]
jmp esi
mov edi, dword [esp + 0x48]
mov byte [esp + 0x10], dl
mov al, 6
mov ecx, 0x80000000
add edi, dword [esi*4 + 0x437f48]
jmp edi
mov byte [esp + 0x10], 4
mov al, 2
jmp 0x437bdd
mov esi, dword [esp + 0x48]
mov byte [esp + 0x10], dl
movzx edx, dl
mov al, 6
mov ecx, 0x80000000
add esi, dword [edx*4 + 0x437f48]
jmp esi
mov byte [esp + 0x10], 5
mov dword [esp + 0xc], 0x80000000
mov al, 0x10
jmp 0x437bdd
mov ecx, 0x80000000
mov byte [esp + 0x10], 0
mov dword [esp + 0xc], 0x80000000
jmp 0x437c2f
mov al, 6
mov byte [esp + 0x10], 2
jmp 0x437bdd
mov byte [esp + 0x10], 3
mov dword [esp + 0xc], 0x80000000
mov al, 9
lea esi, [esp + 0x80]
lea edi, [esp + 0x2c]
mov ecx, edi
mov edx, esi
mov byte [esi + 4], al
mov byte [esi], 2
call fcn.00437f60
mov ebx, dword [esp + 0x6c]
mov ecx, ebx
call fcn.00438098
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd xmm2, qword [esi + 8]
mov eax, dword [esp]
mov ecx, 0x80000001
movsd qword [ebx], xmm0
movsd xmm0, qword [esi]
movsd qword [ebx + 8], xmm1
movsd qword [eax + 0xc], xmm2
movsd qword [eax + 4], xmm0
mov eax, dword [esp]
mov dword [eax], ecx
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0x48]
mov al, 1
mov ecx, 0x80000000
movzx edx, al
mov byte [esp + 0x10], al
mov dword [esp + 0xc], 0x80000000
mov al, 6
add esi, dword [edx*4 + 0x437f48]
jmp esi
mov esi, dword [esp + 0x48]
movzx edx, al
mov byte [esp + 0x10], al
mov dword [esp + 0xc], 0x80000000
mov al, 6
mov ecx, 0x80000000
add esi, dword [edx*4 + 0x437f48]
jmp esi
movzx edx, byte [esp + 0x10]
mov esi, dword [esp + 0x48]
mov al, 6
mov ecx, 0x80000000
add esi, dword [edx*4 + 0x437f48]
jmp esi
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x20]
mov byte [esp + 8], ah
call fcn.0043810f
mov ecx, dword [esp]
mov eax, dword [esp + 4]
mov dl, byte [esp + 8]
mov dword [ecx], ebx
mov dword [ecx + 4], edi
mov dword [ecx + 8], eax
xor eax, eax
mov word [ecx + 0xc], bp
mov word [ecx + 0xe], si
mov byte [ecx + 0x10], al
mov byte [ecx + 0x11], dl
mov word [ecx + 0x14], 0x100
mov byte [ecx + 0x16], al
jmp 0x437c34
mov eax, dword [esp]
mov dword [eax], 0x80000000
jmp 0x437c34
mov ebx, dword [esp + 0x4c]
mov ecx, eax
mov dword [ecx + 4], ebx
mov dword [ecx + 8], edi
movzx edi, word [esp + 0x24]
mov word [ecx + 0xc], di
mov word [ecx + 0xe], si
mov byte [ecx + 0x10], dl
mov byte [ecx + 0x11], dh
movzx edx, word [esp + 0x42]
mov word [ecx + 0x12], dx
mov dword [ecx], 0x80000001
jmp 0x437c34
mov esi, dword [esp]
mov edx, ebp
lea ecx, [esi + 4]
push 0x1c
call fcn.00438141
pop eax
mov dword [esi], 0x80000001
jmp 0x437f2f
lea ecx, [eax + 4]
mov esi, eax
mov edx, ebp
push 0x28
call fcn.00438141
pop eax
mov dword [esi], 0x80000001
jmp 0x437c34
mov edx, dword [esp + 8]
mov ecx, ebp
call fcn.0043810f
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov dl, byte [esp + 0x27]
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
movzx edi, word [esp + 0x24]
mov bl, byte [esp + 0x26]
mov word [eax + 0xc], di
mov word [eax + 0xe], si
mov byte [eax + 0x10], dl
movzx edx, word [esp + 0x42]
mov byte [eax + 0x11], bl
mov word [eax + 0x12], dx
mov word [eax + 0x14], 0x100
mov byte [eax + 0x16], 0
jmp 0x437c34
mov ecx, dword [esp]
mov eax, 0x80000000
jmp 0x437f2d
mov dword [esp + 0x28], edx
mov edx, ebx
call fcn.0041ae6b
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
lea eax, [edi + edx]
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x28], edx
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], ecx
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x50], eax
mov edx, eax
push dword [esp + 8]
push edi
call fcn.004380a2
pop ecx
pop ecx
mov edi, edx
lea ecx, [esp + 0xc]
mov edx, eax
push edi
call fcn.0041afd7
pop eax
cmp ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0xc]
mov byte [ecx + 0x10], 2
mov dword [ecx + 0xc], eax
jbe 0x437e57
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x50]
mov dword [ebx + 0x14], eax
push esi
push eax
call fcn.004380a2
pop ecx
pop ecx
mov esi, edx
lea edi, [esp + 0x2c]
mov edx, eax
mov ecx, edi
push esi
call fcn.004381b1
pop eax
mov al, byte [edi]
cmp al, 0x14
jne 0x437eaa
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
xor eax, eax
jmp 0x437e6d
mov edx, dword [ebx + 0x10]
mov ecx, ebx
mov dword [ebx], 2
call fcn.0043810f
cmp dword [ebx], 2
sete al
mov edx, dword [esp]
mov ecx, dword [esp + 0x1c]
movsd xmm0, qword [esp + 0xc]
movsd xmm1, qword [esp + 0x14]
mov dword [edx + 0x10], ecx
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
mov byte [edx + 0x14], 0
mov byte [edx + 0x15], al
mov byte [edx + 0x16], 1
jmp 0x437c34
mov cl, byte [esp + 0xf]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
jmp 0x437ef5
mov cl, byte [esp + 0x2f]
mov edi, dword [esp]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov byte [edi + 7], cl
movzx ecx, word [esp + 0x2d]
mov word [edi + 5], cx
mov ecx, dword [esp + 0x30]
mov byte [edi + 4], al
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [edi + 0x10], esi
mov dword [edi], 0x80000001
jmp 0x437f35
mov cl, byte [esp + 0xf]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x4c]
mov byte [esp + 0x46], cl
movzx ecx, word [esp + 0xd]
mov word [esp + 0x44], cx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp]
mov byte [edi + 4], al
movzx eax, word [esp + 0x44]
mov word [edi + 5], ax
mov al, byte [esp + 0x46]
mov byte [edi + 7], al
mov dword [edi + 8], ecx
mov ecx, edi
mov eax, 0x80000001
mov dword [edi + 0xc], edx
mov dword [edi + 0x10], esi
mov dword [ecx], eax
mov ecx, dword [esp + 4]
mov edx, ebx
call fcn.0041ae6b
jmp 0x437c34
call fcn.00450263
ud2