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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov al, byte [edx]
mov dword [esp + 0x20], ecx
and al, 3
cmp al, 1
jne 0x45ee3d
mov edi, dword [edx]
inc edx
mov eax, edx
shr edi, 2
and edi, 0x3f
jmp 0x45ee43
mov eax, dword [edx + 4]
mov edi, dword [edx + 8]
lea esi, [esp + 0x50]
mov dword [esp + 0x40], eax
mov edx, eax
mov ecx, esi
push 1
push 0x593d40
push edi
call fcn.0044b300
add esp, 0xc
mov eax, dword [esi + 0x30]
cmp dword [esi], 0
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x34]
je 0x45f05b
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x1c], ecx
sub ecx, edx
mov dword [esp], edx
mov edx, dword [esp + 0xc]
cmp ecx, eax
jae 0x45f06a
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x28], edi
mov dword [esp + 4], eax
mov dword [esp + 0x10], esi
mov esi, dword [esp]
mov dword [esp + 0x30], ebx
cmp ebx, esi
cmova esi, ebx
mov dword [esp + 0x24], esi
mov esi, ebx
neg esi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x24]
sub esi, ebx
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x88]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x58]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x68]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x18]
add esi, ebx
mov dword [esp + 0x38], esi
mov ebx, ecx
mov cl, byte [edx + ecx]
xor eax, eax
xor esi, esi
inc esi
shld eax, esi, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
and eax, dword [esp + 0x44]
and esi, dword [esp + 0x48]
or esi, eax
je 0x45efb3
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea esi, [edx + ebx]
mov edx, ebx
cmp ecx, eax
cmovb eax, ecx
cmp dword [esp + 0x10], 0xffffffff
cmove eax, ecx
dec eax
mov ecx, eax
cmp ecx, 0xffffffff
je 0x45efdf
cmp eax, dword [esp]
jae 0x45f1bd
mov ebx, dword [esp + 4]
lea edi, [edx + ecx]
cmp edi, ebx
jae 0x45f1c7
mov edi, edx
mov edx, dword [esp + 0x18]
mov bl, byte [edx + ecx]
mov edx, edi
lea edi, [ecx - 1]
cmp bl, byte [esi + ecx]
mov ecx, edi
je 0x45ef47
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp]
add ecx, dword [esp + 0x2c]
cmp dword [esp + 0x10], 0xffffffff
lea ecx, [edi + ecx + 1]
je 0x45ef97
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
sub ecx, dword [esp]
mov eax, dword [esp + 4]
mov edx, dword [esp + 0xc]
cmp ecx, eax
jb 0x45eefd
jmp 0x45f06a
cmp dword [esp + 0x10], 0xffffffff
mov eax, dword [esp]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 4]
mov dword [esp + 0x1c], ebx
cmovne ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, ebx
sub ecx, eax
cmp ecx, esi
jb 0x45eefd
jmp 0x45f06a
cmp dword [esp + 0x10], 0xffffffff
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x4c], edx
cmove edi, dword [esp]
lea ecx, [eax + edx]
cmp edi, eax
cmovbe edi, eax
mov eax, dword [esp + 0x38]
add edi, dword [esp + 0x2c]
sub edi, 1
jb 0x45f164
sub esi, 1
jb 0x45f1d2
mov ebx, dword [esp + 4]
cmp ecx, ebx
jae 0x45f1e0
mov bl, byte [eax]
mov edx, dword [esp + 0xc]
inc eax
mov byte [esp + 0xb], bl
mov bl, byte [esp + 0xb]
cmp bl, byte [edx + ecx]
mov edx, dword [esp + 0x4c]
lea ecx, [ecx + 1]
je 0x45f008
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
sub ecx, eax
cmp dword [esp + 0x10], 0xffffffff
jne 0x45ef93
jmp 0x45ef97
cmp byte [esp + 0x5e], 0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x28], edi
je 0x45f075
mov edx, dword [esp + 0x20]
xor ecx, ecx
jmp 0x45f1b3
mov dl, byte [esp + 0x5d]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
test dl, dl
sete bl
test eax, eax
je 0x45f152
xor esi, esi
mov edi, ebx
dec esi
cmp eax, dword [esp + 4]
jae 0x45f0a4
cmp byte [ecx + eax], 0xbf
jg 0x45f0aa
jmp 0x45f1f1
jne 0x45f1f1
movzx edx, byte [ecx + eax - 1]
test dl, dl
jns 0x45f10e
movzx ebx, byte [ecx + eax - 2]
mov dword [esp], edx
cmp bl, 0xc0
jge 0x45f0ef
movzx edx, byte [ecx + eax - 3]
cmp dl, 0xc0
mov dword [esp + 0x18], edx
jge 0x45f0f4
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
movzx esi, byte [ecx + eax - 4]
mov ecx, dword [esp + 0xc]
and edx, 0x3f
and esi, 7
shl esi, 6
or edx, esi
xor esi, esi
dec esi
jmp 0x45f0fb
and ebx, 0x1f
jmp 0x45f103
mov edx, dword [esp + 0x18]
and edx, 0xf
shl edx, 6
and ebx, 0x3f
or ebx, edx
mov edx, dword [esp]
shl ebx, 6
and edx, 0x3f
or edx, ebx
mov ebx, edi
test bl, 1
je 0x45f160
cmp edx, 0x110000
je 0x45f06a
cmp edx, 0x80
mov ebx, esi
jb 0x45f146
mov ebx, 0xfffffffe
cmp edx, 0x800
jb 0x45f146
xor ebx, ebx
cmp edx, 0x10000
setb bl
or ebx, 0xfffffffc
xor edi, edi
add eax, ebx
jne 0x45f093
jmp 0x45f162
test dl, dl
mov edi, 0
jne 0x45f162
jmp 0x45f06a
mov edi, eax
mov edx, edi
inc edx
mov ecx, dword [esp + 0x40]
mov edi, edx
mov edx, dword [esp + 0x28]
jne 0x45f177
mov eax, edi
mov esi, edx
jmp 0x45f192
mov esi, edx
sub esi, edi
jbe 0x45f18e
cmp byte [ecx + edi], 0xbf
mov eax, edi
jg 0x45f192
push 0x5547fc
push edx
push eax
jmp 0x45f1fd
mov eax, edi
jne 0x45f185
add ecx, eax
mov edx, esi
mov edi, ecx
call fcn.0044de00
mov edx, dword [esp + 0x20]
xor ecx, ecx
test al, 1
jne 0x45f1b3
shr eax, 0x10
mov dword [edx + 4], esi
mov ecx, edi
mov word [edx + 8], ax
mov dword [edx], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp]
push 0x554150
jmp 0x45f1e7
mov ecx, edi
mov edx, ebx
push 0x554160
jmp 0x45f1e7
mov ecx, dword [esp + 0x24]
mov edx, dword [esp]
push 0x554130
jmp 0x45f1e7
mov edx, ebx
push 0x554140
call fcn.00444440
add esp, 4
ud2
mov edx, dword [esp + 4]
push 0x554180
push eax
push 0
call fcn.0044a570
add esp, 0xc
ud2