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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push esi
mov ebx, edx
mov esi, ecx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 8], esi
push edi
mov edi, dword [ebp + 8]
test ebx, ebx
jne 0x43cdd1
cmp byte [esi], 0
jne 0x43cdc8
mov dl, byte [esi + 1]
test dl, 2
je 0x43cdc8
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
mov ebx, dword [ebp + 0xc]
cmp ecx, edi
jne 0x43cd66
cmp eax, ebx
jne 0x43cd68
mov eax, dword [ebp + 0x14]
mov dword [eax], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, ebx
jg 0x43cdc8
jl 0x43cd70
cmp ecx, edi
jae 0x43cdc8
test dl, 8
jne 0x43ce45
add ecx, 1
adc eax, 0
cmp ecx, edi
jne 0x43cdc8
cmp eax, ebx
jne 0x43cdc8
cmp dword [esi + 4], 0
jne 0x43cdc8
mov eax, dword [ebp + 0x14]
push 0
push esi
mov dword [eax], 0
call fcn.0043d3f0
add esp, 8
test eax, eax
jne 0x43cdbf
mov ecx, esi
call fcn.0043c290
cmp dword [esi + 0x20], edi
jne 0x43cdc8
cmp dword [esi + 0x24], ebx
jne 0x43cdc8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x65
jne 0x43d21f
mov dword [ebp - 0xc], 0
jmp 0x43ce31
mov ecx, dword [ebx]
cmp word [ecx + 8], 0xd
ja 0x43ce26
mov eax, dword [ebx + 4]
movzx edx, word [eax + 8]
mov eax, dword [ecx + 0x10]
mov al, byte [eax]
test al, al
sete cl
test al, al
setne al
lea ecx, [ecx*2 - 1]
lea eax, [eax*2 - 1]
mov byte [ebx + 0xc], al
mov byte [ebx + 0xd], cl
test dl, 4
je 0x43ce12
mov dword [ebp - 0xc], 0x449e80
jmp 0x43ce2d
test dl, 0x19
jne 0x43ce26
mov eax, dword [ebx]
mov dword [ebp - 0xc], 0x44a0b0
cmp dword [eax + 0x14], 0
je 0x43ce2d
mov dword [ebp - 0xc], 0x449e60
mov byte [ebx + 0xb], 0
mov ecx, esi
call fcn.0043c980
test eax, eax
je 0x43ce57
cmp eax, 0x10
jne 0x43d21f
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xffffffff
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, 1
lea edi, [esi + 0x74]
sub edx, dword [ebp + 0x10]
mov dword [ebp - 0x2c], edx
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], eax
movzx ebx, word [ecx + 0x16]
mov ecx, edx
dec ebx
mov edi, ebx
mov dword [ebp - 0x24], ebx
sar edi, cl
cmp dword [ebp - 0xc], 0
mov word [esi + 0x46], di
mov esi, dword [ebp - 0x10]
lea eax, [esi + 0x40]
lea edx, [esi + 0x18]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], edx
jne 0x43cf93
movzx edx, word [edx]
mov cl, byte [esi + 3]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], edx
mov byte [ebp - 1], cl
nop dword [eax + eax]
mov ax, word [eax + edi*2]
mov ch, al
mov cl, ah
movzx eax, dx
movzx ecx, cx
and ecx, eax
add ecx, dword [esi + 0x44]
cmp byte [ebp - 1], 0
je 0x43cee0
cmp byte [ecx], 0x80
jb 0x43cedf
mov eax, dword [esi + 0x3c]
inc ecx
cmp ecx, eax
jae 0x43d12f
cmp byte [ecx], 0x80
jae 0x43ced1
inc ecx
lea edx, [ebp - 0x38]
call fcn.0042a210
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
cmp ecx, dword [ebp + 0xc]
jg 0x43cf43
jl 0x43cefc
mov edx, dword [ebp + 8]
cmp eax, edx
jae 0x43cf46
lea edx, [edi + 1]
mov dword [ebp - 0x18], edx
cmp edx, ebx
jle 0x43cf5b
mov ebx, dword [ebp - 0x14]
or esi, 0xffffffff
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 8]
cmp byte [eax + 8], 0
jne 0x43d187
mov esi, eax
mov edi, dword [ebp - 0x14]
movzx eax, word [esi + 0x16]
cmp edx, eax
jl 0x43d0b1
movzx ecx, byte [esi + 9]
mov eax, dword [esi + 0x38]
mov edx, dword [ecx + eax + 8]
jmp 0x43d0c9
mov edx, dword [ebp + 8]
cmp ecx, dword [ebp + 0xc]
jl 0x43cf78
jg 0x43cf51
cmp eax, edx
jbe 0x43cf78
mov edx, dword [ebp - 0x18]
lea ebx, [edi - 1]
cmp edx, ebx
jg 0x43cf6b
mov eax, dword [ebp - 0x24]
lea edi, [ebx + edx]
mov edx, dword [ebp - 0x28]
sar edi, 1
jmp 0x43ceb0
mov eax, dword [ebp - 0x14]
mov esi, 1
mov dword [ebp - 0x14], eax
jmp 0x43cf0f
mov ebx, dword [ebp - 8]
mov word [ebx + 0x46], di
cmp byte [esi + 8], 0
jne 0x43d159
mov ecx, dword [ebp - 0x1c]
mov edx, edi
mov dword [ebp - 0x18], edx
jmp 0x43cf24
mov eax, dword [eax]
mov ax, word [eax + edi*2]
mov ch, al
mov cl, ah
movzx eax, word [edx]
movzx ecx, cx
and ecx, eax
mov eax, dword [ebp - 0x10]
add ecx, dword [esi + 0x44]
movzx eax, byte [eax + 0xb]
movzx edx, byte [ecx]
lea esi, [ecx + 1]
cmp edx, eax
ja 0x43cfcb
push dword [ebp - 0x20]
push esi
push edx
call dword [ebp - 0xc]
add esp, 0xc
mov esi, eax
jmp 0x43d07b
mov al, byte [esi]
test al, al
js 0x43cffc
and edx, 0x7f
movzx eax, al
shl edx, 7
add edx, eax
mov eax, dword [ebp - 0x10]
movzx eax, word [eax + 0xe]
cmp edx, eax
ja 0x43cffc
push dword [ebp - 0x20]
lea eax, [ecx + 2]
push eax
push edx
call dword [ebp - 0xc]
add esp, 0xc
mov esi, eax
jmp 0x43d07b
mov edx, dword [ebp - 0x10]
mov ebx, dword [ebp - 8]
movzx eax, byte [edx + 0xa]
lea esi, [ebx + 0x20]
sub ecx, eax
mov eax, dword [edx + 0x50]
push esi
push ecx
push edx
call eax
mov esi, dword [esi]
add esp, 0xc
cmp esi, 2
jl 0x43d1f6
lea eax, [esi + 0x12]
cdq
push edx
push eax
call fcn.00425f90
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x43d1e1
mov eax, dword [ebp - 8]
xor edx, edx
push 0
push ebx
push esi
mov ecx, eax
mov word [eax + 0x46], di
call fcn.0043c500
mov ecx, dword [ebp - 8]
add esp, 0xc
mov dword [ebp - 0x28], eax
and byte [ecx + 1], 0xfb
test eax, eax
jne 0x43d1c5
push dword [ebp - 0x20]
push ebx
push esi
call dword [ebp - 0xc]
add esp, 0xc
mov esi, eax
push ebx
call fcn.004261a0
mov ebx, dword [ebp - 0x24]
add esp, 4
test esi, esi
jns 0x43d087
lea edx, [edi + 1]
mov dword [ebp - 0x18], edx
jmp 0x43d096
jle 0x43d19f
mov edx, dword [ebp - 0x18]
lea ebx, [edi - 1]
mov dword [ebp - 0x24], ebx
cmp edx, ebx
jg 0x43cf0f
mov esi, dword [ebp - 0x10]
lea edi, [ebx + edx]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
sar edi, 1
jmp 0x43cf93
mov eax, dword [ecx]
mov ax, word [eax + edx*2]
mov ch, al
mov cl, ah
movzx eax, word [edi]
movzx ecx, cx
and ecx, eax
mov eax, dword [esi + 0x38]
mov edx, dword [ecx + eax]
mov eax, dword [ebp - 0x18]
mov esi, dword [ebx + 0x14]
movzx ecx, ax
mov al, byte [ebx + 0x44]
mov word [ebx + 0x46], cx
cmp al, 0x13
jge 0x43d17b
and byte [ebx + 1], 0xf9
xor edi, edi
movsx eax, al
mov word [ebx + 0x32], di
lea edi, [ebx + 0x74]
bswap edx
mov word [ebx + eax*2 + 0x48], cx
movsx ecx, byte [ebx + 0x44]
mov eax, dword [edi]
mov dword [ebx + ecx*4 + 0x78], eax
xor eax, eax
inc byte [ebx + 0x44]
mov ecx, esi
mov word [ebx + 0x46], ax
movzx eax, byte [ebx + 2]
push eax
push ebx
push edi
call fcn.00439860
add esp, 0xc
test eax, eax
jne 0x43d219
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 0x2c]
jmp 0x43ce65
push 0x515994
push 0x109ce
push 0x515928
push 0x51590c
push 0xb
call fcn.00428aa0
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
or byte [ebx + 1], 2
mov dword [ebx + 0x20], eax
xor eax, eax
mov word [ebx + 0x32], ax
mov eax, dword [ebp + 0x14]
mov dword [ebx + 0x24], ecx
mov dword [eax], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x515994
push 0x10822
jmp 0x43d200
mov eax, dword [ebp + 0x14]
mov word [ebx + 0x46], di
mov dword [eax], esi
xor eax, eax
xor ecx, ecx
mov word [ebx + 0x32], cx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov dword [eax], 0
xor eax, eax
mov word [ebx + 0x46], di
cmp byte [ecx + 0xb], al
je 0x43d219
push 0x515994
push 0x10a37
jmp 0x43d200
push ebx
call fcn.004261a0
mov ebx, dword [ebp - 8]
add esp, 4
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov word [ebx + 0x32], cx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 8]
xor ecx, ecx
mov eax, 7
mov word [ebx + 0x32], cx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x515994
push 0x10a18
push 0x515928
push 0x51590c
push 0xb
call fcn.00428aa0
add esp, 0x14
mov eax, 0xb
xor ecx, ecx
mov word [ebx + 0x32], cx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret