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

Disassembly:
sub esp, 0x50
push ebx
push ebp
mov ebx, dword [esp + 0x5c]
push esi
push edi
mov ecx, 6
xor eax, eax
lea edi, [esp + 0x30]
mov edx, dword [ebx + 0x14]
xor ebp, ebp
rep stosd dword es:[edi], eax
mov ecx, 6
lea edi, [esp + 0x48]
rep stosd dword es:[edi], eax
mov ecx, dword [ebx]
lea eax, [esp + 0x18]
push eax
push ecx
push edx
mov dword [esp + 0x50], 0x10
mov dword [esp + 0x58], 8
mov dword [esp + 0x54], str.UNKNOWN
mov dword [esp + 0x1c], ebp
call fcn.00410bb0
mov esi, eax
add esp, 0xc
cmp esi, ebp
jne 0x45ea1e
mov eax, dword [ebx]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x7c]
and eax, 1
mov dword [esp + 0x20], eax
test eax, eax
jne 0x45e5dc
mov edi, dword [esp + 0x70]
xor ecx, ecx
mov cx, word [edi + 0x14]
cmp ebp, ecx
jae 0x45e9ee
jmp 0x45e5e0
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0x28]
push 0
push edx
push eax
push 0
push ebp
push ecx
push edi
push ebx
call fcn.00419900
mov esi, eax
add esp, 0x20
cmp esi, 0xffff8758
je 0x45e9ee
test esi, esi
jne 0x45e9d8
test ebp, ebp
jne 0x45e61c
mov eax, dword [ebx]
jmp 0x45e641
mov eax, dword [ebx + 0x250]
test ah, 4
je 0x45e62e
mov eax, 0x26
jmp 0x45e637
and al, 1
neg al
sbb eax, eax
and eax, 6
lea edx, [eax + ebp*2 + 0x18]
xor eax, eax
mov ax, word [edx + edi]
mov ebx, dword [ebx + 0x250]
mov ecx, ebx
and ecx, 0x400
mov dword [esp + 0x1c], ecx
je 0x45e65c
mov ecx, 0x26
jmp 0x45e668
mov ecx, ebx
and cl, 1
neg cl
sbb ecx, ecx
and ecx, 6
mov edx, dword [esp + 0x14]
lea ecx, [ecx + edx*2 + 0x1a]
sub ax, word [ecx + edi]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x45e683
mov ecx, 0x26
jmp 0x45e691
mov edx, ebx
and dl, 1
neg dl
sbb edx, edx
and edx, 6
mov ecx, edx
mov edx, dword [esp + 0x14]
lea ecx, [ecx + edx*2 + 0x1a]
xor edx, edx
mov dx, word [ecx + edi]
add edx, edi
test ax, ax
mov dword [esp + 0x2c], edx
je 0x45e9d0
mov ebp, dword [esp + 0x64]
mov ecx, eax
and ecx, 0xffff
mov ebp, dword [ebp]
cmp ecx, ebp
ja 0x45e9d0
sub ecx, edi
add ecx, edx
cmp ecx, ebp
ja 0x45e9d0
xor ecx, ecx
mov cl, byte [edx]
dec ecx
cmp ecx, 3
ja case.default.0x45e6df
jmp dword [ecx*4 + 0x45ea28]
mov esi, dword [esp + 0x14]
test esi, esi
jne 0x45e6f2
mov eax, ebp
jmp 0x45e716
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x45e701
mov eax, 0x26
jmp 0x45e70c
mov eax, ebx
and al, 1
neg al
sbb eax, eax
and eax, 6
lea ecx, [eax + esi*2 + 0x18]
xor eax, eax
mov ax, word [ecx + edi]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x45e735
mov ecx, dword [esp + 0x14]
mov esi, 0x26
lea ecx, [esi + ecx*2 + 0x1a]
sub ax, word [ecx + edi]
dec eax
jmp 0x45e8ae
and bl, 1
mov ecx, dword [esp + 0x14]
neg bl
sbb ebx, ebx
and ebx, 6
mov esi, ebx
lea ecx, [esi + ecx*2 + 0x1a]
sub ax, word [ecx + edi]
dec eax
jmp 0x45e8ae
cmp ax, 0xc
jb 0x45e9d0
mov eax, dword [esp + 0x7c]
mov edx, dword [edx + 4]
mov edi, dword [esp + 0x68]
push eax
lea ecx, [esp + 0x1c]
lea eax, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x6c]
push eax
push edx
push edi
push ecx
call fcn.0045efd0
mov esi, eax
add esp, 0x18
test esi, esi
je 0x45e7b2
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
push edi
push 0
push edx
push eax
push 0x4bac74
lea ecx, [esp + 0x5c]
push 0
push ecx
mov dword [esp + 0x2c], esi
call fcn.00458b60
add esp, 0x1c
jmp 0x45e9d8
push edi
jmp 0x45e8db
cmp ax, 8
jb 0x45e9d0
mov eax, dword [esp + 0x68]
mov edx, dword [edx + 4]
cmp edx, dword [eax + 0x1c]
ja 0x45e811
test byte [esp + 0x14], 1
je 0x45e811
mov ecx, dword [esp + 0x7c]
or ecx, 0x80000
push ecx
mov ecx, dword [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x7c]
push ecx
lea ecx, [esp + 0x3c]
push ecx
push edx
mov edx, dword [esp + 0x78]
push eax
push edx
call fcn.00419c30
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x45e9d8
mov dword [esp + 0x10], esi
jmp 0x45e9d8
mov ecx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x7c]
push 0
push eax
push ecx
push 0x4bac74
lea edx, [esp + 0x5c]
push 0
push edx
call fcn.00458b60
jmp 0x45e7fb
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x45e83d
mov eax, ebp
jmp 0x45e865
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x45e84c
mov eax, 0x26
jmp 0x45e857
mov eax, ebx
and al, 1
neg al
sbb eax, eax
and eax, 6
lea ecx, [eax + ecx*2 + 0x18]
xor eax, eax
mov ax, word [ecx + edi]
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x45e874
mov ebp, 0x26
jmp 0x45e884
and bl, 1
mov ecx, dword [esp + 0x14]
neg bl
sbb ebx, ebx
and ebx, 6
mov ebp, ebx
lea ebx, [ebp + ecx*2 + 0x1a]
sub ax, word [ebx + edi]
dec eax
mov edi, eax
test cl, 1
mov dword [esp + 0x1c], edi
jne 0x45e8fd
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], 0
test eax, eax
je 0x45e9d8
mov eax, edi
mov edi, dword [esp + 0x18]
and eax, 0xffff
mov ecx, eax
lea esi, [edx + 1]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
push ecx
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
push 0
push edx
push eax
push 0x4bac74
lea ecx, [esp + 0x44]
push 0
push ecx
call fcn.00458b60
jmp 0x45e7fb
cmp di, 5
jb 0x45e9d0
mov ecx, edi
xor ebx, ebx
and ecx, 0xffff
cmp ecx, 2
mov dword [esp + 0x24], ecx
jbe 0x45e9d8
xor eax, eax
jmp 0x45e92e
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov bp, word [eax + edx + 1]
lea esi, [eax + edx + 1]
add ebx, 2
mov edx, ebp
mov eax, ebx
and edx, 0xffff
and eax, 0xffff
add esi, 2
add edx, eax
cmp edx, ecx
jle 0x45e956
mov ebp, edi
sub ebp, ebx
mov eax, ebp
mov edi, dword [esp + 0x18]
and eax, 0xffff
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x78]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
push ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x78]
push 0
push edx
push eax
push 0x4bac74
lea ecx, [esp + 0x44]
push 0
push ecx
call fcn.00458b60
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x45e9ac
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x24]
lea ebx, [ebx + ebp + 2]
mov eax, ebx
and eax, 0xffff
lea edx, [eax + 2]
cmp edx, ecx
jb 0x45e922
jmp 0x45e9d8
mov eax, dword [esp + 0x20]
test eax, eax
je 0x45e9d8
mov dword [esp + 0x10], 0xffff8704
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x64]
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x45e5c4
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx + 0x14]
push eax
push ecx
call fcn.00410cc0
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
push edx
push eax
call fcn.00458a40
add esp, 0x10
test eax, eax
jne 0x45ea20
test esi, esi
jne 0x45ea1e
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x45ea20
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret