Function at 0x45e7e0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xfc
push ebx
push ebp
push esi
mov esi, dword [esp + 0x110]
push edi
xor edi, edi
mov ebx, eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], edi
mov edx, esi
lea ebx, [ebx]
mov ecx, dword [eax]
mov ebp, dword [esp + ecx*4 + 0x50]
lea ecx, [esp + ecx*4 + 0x50]
inc ebp
add eax, 4
dec edx
mov dword [ecx], ebp
jne 0x45e850
cmp dword [esp + 0x50], esi
jne 0x45e881
mov eax, dword [esp + 0x124]
mov dword [eax], edi
mov dword [ebx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov ecx, 1
lea esp, [esp]
cmp dword [esp + ecx*4 + 0x50], edi
jne 0x45e8c8
cmp dword [esp + ecx*4 + 0x54], edi
jne 0x45e8b8
cmp dword [esp + ecx*4 + 0x58], edi
jne 0x45e8bb
cmp dword [esp + ecx*4 + 0x5c], edi
jne 0x45e8c0
cmp dword [esp + ecx*4 + 0x60], edi
jne 0x45e8c5
add ecx, 5
cmp ecx, 0xf
jbe 0x45e890
jmp 0x45e8c8
inc ecx
jmp 0x45e8c8
add ecx, 2
jmp 0x45e8c8
add ecx, 3
jmp 0x45e8c8
add ecx, 4
cmp eax, ecx
mov edx, ecx
mov dword [esp + 0x14], edx
jae 0x45e8d8
mov dword [esp + 0x10], ecx
mov eax, ecx
mov esi, 0xf
lea ecx, [ecx]
cmp dword [esp + esi*4 + 0x50], edi
jne 0x45e8e9
dec esi
jne 0x45e8e0
cmp eax, esi
mov dword [esp + 0x24], esi
jbe 0x45e8f7
mov dword [esp + 0x10], esi
mov eax, esi
mov dword [ebx], eax
mov ebx, 1
shl ebx, cl
cmp ecx, esi
jae 0x45e915
sub ebx, dword [esp + ecx*4 + 0x50]
js 0x45ecb8
inc ecx
shl ebx, 1
cmp ecx, esi
jb 0x45e904
lea ecx, [esi*4]
lea ebp, [esp + ecx + 0x50]
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp]
sub ebx, ecx
mov dword [esp + 0x48], ebx
js 0x45ecb8
add ecx, ebx
mov dword [ebp], ecx
xor ecx, ecx
dec esi
mov dword [esp + 0x94], edi
je 0x45e961
xor ebx, ebx
jmp 0x45e950
add ecx, dword [esp + ebx + 0x54]
mov dword [esp + ebx + 0x98], ecx
add ebx, 4
dec esi
jne 0x45e950
mov ebp, dword [esp + 0x110]
xor ebx, ebx
lea ebx, [ebx]
mov ecx, dword [ebp]
add ebp, 4
cmp ecx, edi
je 0x45e999
mov esi, dword [esp + ecx*4 + 0x90]
mov edx, dword [esp + 0x130]
lea ecx, [esp + ecx*4 + 0x90]
mov dword [edx + esi*4], ebx
mov edx, dword [esp + 0x14]
inc esi
mov dword [ecx], esi
mov ecx, dword [esp + 0x114]
inc ebx
cmp ebx, ecx
jb 0x45e970
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + ecx + 0x90]
mov dword [esp + 0x114], ecx
mov ecx, dword [esp + 0x130]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x24]
mov ebx, eax
xor ebp, ebp
neg ebx
xor esi, esi
cmp edx, ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x90], edi
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0xd0], edi
mov dword [esp + 0x2c], edi
jg 0x45ec91
lea ecx, [edx - 1]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + edx*4 + 0x50]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
mov dword [esp + 0x28], ecx
je 0x45ec74
dec dword [esp + 0x28]
lea ecx, [ebx + eax]
cmp edx, ecx
jle 0x45eb4a
mov dword [esp + 0x40], ecx
mov ecx, ebx
sub ecx, eax
jmp 0x45ea36
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
inc ebp
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x40]
add ebx, eax
add ecx, eax
add ebp, eax
mov eax, dword [esp + 0x10]
sub edx, ebx
cmp edx, eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], ebp
jbe 0x45ea61
mov edx, eax
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x28]
sub ecx, ebx
mov eax, 1
shl eax, cl
lea esi, [ebp + 1]
cmp eax, esi
jbe 0x45eaa3
or esi, 0xffffffff
sub esi, ebp
mov ebp, dword [esp + 0x20]
add eax, esi
cmp ecx, edx
jae 0x45eaa3
inc ecx
cmp ecx, edx
jae 0x45eaa3
lea ecx, [ecx]
mov esi, dword [ebp + 4]
add ebp, 4
shl eax, 1
cmp eax, esi
jbe 0x45eaa3
sub eax, esi
inc ecx
cmp ecx, edx
jb 0x45ea90
mov edx, dword [esp + 0x12c]
mov eax, dword [edx]
mov esi, 1
shl esi, cl
lea edx, [eax + esi]
cmp edx, 0x5a0
ja 0x45ecb8
mov ebp, dword [esp + 0x128]
lea ebp, [ebp + eax*8]
mov eax, dword [esp + 0x18]
lea eax, [esp + eax*4 + 0xd0]
mov dword [esp + 0x4c], eax
mov dword [eax], ebp
mov eax, dword [esp + 0x12c]
mov dword [eax], edx
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x2c], ebp
je 0x45eb2f
mov edi, dword [esp + 0x1c]
mov dl, byte [esp + 0x10]
mov dword [esp + eax*4 + 0x90], edi
mov byte [esp + 0x34], cl
mov ecx, dword [esp + 0x44]
mov eax, edi
shr eax, cl
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx - 4]
mov edi, ebp
sub edi, ecx
mov byte [esp + 0x35], dl
mov edx, dword [esp + 0x34]
sar edi, 3
sub edi, eax
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], edi
jmp 0x45eb38
mov eax, dword [esp + 0x124]
mov dword [eax], ebp
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x14], ecx
jg 0x45ea2e
mov ebp, dword [esp + 0x1c]
mov dl, byte [esp + 0x14]
mov ecx, dword [esp + 0x114]
mov eax, dword [esp + 0x130]
sub dl, bl
mov byte [esp + 0x35], dl
lea edx, [eax + ecx*4]
mov ecx, dword [esp + 0x30]
cmp ecx, edx
jb 0x45eb74
mov byte [esp + 0x34], 0xc0
jmp 0x45ebbd
mov eax, dword [ecx]
mov edx, dword [esp + 0x118]
cmp eax, edx
jae 0x45eb96
cmp eax, 0x100
setb dl
dec dl
mov edi, eax
and edx, 0x60
mov byte [esp + 0x34], dl
jmp 0x45ebb6
sub eax, edx
mov edx, dword [esp + 0x120]
shl eax, 2
mov dl, byte [eax + edx]
add dl, 0x50
mov byte [esp + 0x34], dl
mov edx, dword [esp + 0x11c]
mov edi, dword [eax + edx]
add ecx, 4
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x14]
sub ecx, ebx
mov edx, 1
shl edx, cl
mov eax, ebp
mov ecx, ebx
shr eax, cl
cmp eax, esi
jae 0x45ebfc
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx + eax*8]
jmp 0x45ebe0
mov ebp, dword [esp + 0x34]
mov dword [ecx], ebp
lea ebp, [edx*8]
mov dword [ecx + 4], edi
add eax, edx
add ecx, ebp
cmp eax, esi
jb 0x45ebe0
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov eax, 1
shl eax, cl
test ebp, eax
je 0x45ec18
jmp 0x45ec10
xor ebp, eax
shr eax, 1
test ebp, eax
jne 0x45ec10
mov ecx, ebx
mov edx, 1
shl edx, cl
xor ebp, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + eax*4 + 0x90]
dec edx
and edx, ebp
cmp edx, ecx
mov dword [esp + 0x1c], ebp
je 0x45ec60
lea esp, [esp]
sub ebx, dword [esp + 0x10]
mov ecx, ebx
mov edx, 1
shl edx, cl
mov ecx, dword [esp + eax*4 + 0x8c]
dec eax
dec edx
and edx, ebp
cmp edx, ecx
jne 0x45ec40
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x45ea15
add dword [esp + 0x20], 4
mov ecx, dword [esp + 0x3c]
inc edx
inc ecx
mov dword [esp + 0x3c], ecx
cmp edx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
jle 0x45ea03
mov eax, dword [esp + 0x48]
test eax, eax
je 0x45e874
cmp dword [esp + 0x24], 1
je 0x45e874
pop edi
pop esi
pop ebp
mov eax, 0xfffffffb
pop ebx
add esp, 0xfc
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0xfc
ret