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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x44
mov edi, dword [esp + 0x58]
movzx eax, word [edi]
mov dword [esp + 0x20], 0xece35854
mov byte [esp + 0x24], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x43d8fa
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x20]
lea esi, [ecx + edx]
add ecx, 0x55
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0xa3bb7155
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x10]
add cl, 0x4c
mov edx, dword [esp]
mov byte [esp + edx + 0x20], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x43d8c0
xor ecx, ecx
cmp dword [esp + 0x20], eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x448f54]
mov ebx, dword [edi + 0x3c]
mov ecx, dword [edi + ebx]
mov dword [esp + 0x20], 0xe2e3170d
mov byte [esp + 0x24], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 4
ja 0x43d960
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 0x20]
add edx, 0x1a55ae1e
xor edx, esi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
add dl, 0x3d
mov esi, dword [esp]
mov byte [esp + esi + 0x20], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 5
jb 0x43d930
xor edx, edx
cmp ecx, dword [esp + 0x20]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x448f6c]
mov esi, dword [edi + ebx + 0x78]
cmp dword [edi + ebx + 0x7c], 0
sete al
test esi, esi
sete cl
or cl, al
movzx ecx, cl
xor eax, eax
jmp dword [ecx*4 + 0x448f74]
mov eax, dword [edi + esi + 0x20]
add eax, edi
mov dword [esp + 0x3c], eax
mov eax, dword [edi + esi + 0x24]
add eax, edi
mov dword [esp + 0x1c], eax
mov eax, dword [edi + esi + 0x1c]
add eax, edi
mov dword [esp + 0x18], eax
mov edx, edi
mov ebx, dword [0x44ab9c]
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 4], esi
jmp dword [eax*4 + 0x448f7c]
mov edi, dword [0x44ab98]
mov eax, dword [edx + esi + 0x18]
add eax, edi
mov ecx, 0xffffffff
cmp eax, 0x20000000
jae 0x43d9e6
shl eax, 3
mov ecx, eax
push ecx
call fcn.00409a50
add esp, 4
mov esi, eax
lea eax, [edi*8]
lea edx, [ebx + edi*8]
cmp esi, ebx
jbe 0x43daec
cmp edx, esi
jbe 0x43daec
test eax, eax
je 0x43da6f
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx + eax - 1]
mov byte [esi + eax - 1], dl
movzx edx, byte [ebx + eax - 2]
mov byte [esi + eax - 2], dl
movzx edx, byte [ebx + eax - 3]
mov byte [esi + eax - 3], dl
movzx edx, byte [ebx + eax - 4]
mov byte [esi + eax - 4], dl
movzx edx, byte [ebx + eax - 5]
mov byte [esi + eax - 5], dl
movzx edx, byte [ebx + eax - 6]
mov byte [esi + eax - 6], dl
movzx edx, byte [ebx + eax - 7]
mov byte [esi + eax - 7], dl
movzx edx, byte [ebx + eax - 8]
mov byte [esi + eax - 8], dl
add ecx, 0xfffffff8
mov eax, ecx
jne 0x43da20
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x448f84]
mov dword [0x44ab9c], esi
xor edx, edx
xor eax, eax
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 4]
mov dword [esp + 0xc], 0
cmp edx, dword [ebx + ecx + 0x18]
setb al
xor edx, edx
jmp dword [eax*4 + 0x448f8c]
mov ecx, eax
shr ecx, 2
mov edi, esi
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov edi, esi
add edi, eax
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ebx, dword [0x44ab9c]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x448f84]
push ebx
call fcn.00409a60
add esp, 4
mov dword [0x44ab9c], esi
xor edx, edx
xor eax, eax
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 4]
mov dword [esp + 0xc], 0
cmp edx, dword [ebx + ecx + 0x18]
setb al
xor edx, edx
jmp dword [eax*4 + 0x448f8c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 8]
movzx eax, word [eax + edx*2]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + eax*4]
mov dword [0x44aba0], eax
inc edx
xor eax, eax
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 4]
cmp edx, dword [ebx + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x448f8c]
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], edx
mov eax, dword [eax + edx*4]
add eax, ebx
mov edx, 0xffffffff
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, esi
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
lea esi, [esi + 1]
jne 0x43dba0
mov dword [esp + 0x20], 0x747476e1
mov word [esp + 0x24], 0
mov dword [esp], 0
mov esi, dword [esp]
cmp esi, 5
ja 0x43dc0c
nop
nop
nop
mov esi, dword [esp]
mov edi, dword [esp]
movzx edi, byte [esp + edi + 0x20]
add esi, 0x13e34ff4
xor esi, edi
mov dword [esp + 0x10], esi
mov ebx, dword [esp + 0x10]
mov esi, ebx
not esi
and esi, 0x82
and ebx, 0x7d
sub ebx, esi
mov esi, dword [esp]
mov byte [esp + esi + 0x20], bl
inc dword [esp]
mov esi, dword [esp]
cmp esi, 6
jb 0x43dbd0
test edx, edx
mov dword [esp + 0x14], eax
je 0x43dc30
mov esi, dword [esp + 0x20]
lea edi, [edx - 1]
cmp edi, 3
jae 0x43dc40
mov ebp, 0xb14a5e2
mov ebx, eax
jmp 0x43dc7b
mov edi, 0xb14a5e2
jmp 0x43dca0
mov edi, ecx
and edi, 0xfffffffc
mov ebp, 0xb14a5e2
mov ebx, eax
nop
nop
nop
nop
movsx eax, byte [ebx]
xor eax, ebp
imul eax, esi
movsx ebp, byte [ebx + 1]
xor ebp, eax
imul ebp, esi
movsx eax, byte [ebx + 2]
xor eax, ebp
imul eax, esi
movsx ebp, byte [ebx + 3]
add ebx, 4
xor ebp, eax
imul ebp, esi
add edi, 0xfffffffc
jne 0x43dc50
mov edi, ebp
test dl, 3
je 0x43dca0
and ecx, 3
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx edi, byte [ebx + edx]
xor edi, ebp
imul edi, esi
inc edx
mov ebp, edi
cmp ecx, edx
jne 0x43dc90
mov eax, edi
xor eax, 0x43ac3278
xor ecx, ecx
or eax, dword [0x44aba0]
sete cl
jmp dword [ecx*4 + 0x448f94]
xor ecx, ecx
mov eax, dword [esp + 0x14]
cmp byte [eax], 0x4e
setne cl
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 8]
jmp dword [ecx*4 + 0x448f9c]
xor ecx, ecx
cmp byte [eax + 1], 0x74
setne cl
jmp dword [ecx*4 + 0x448fa4]
jmp dword [0x448fb0]
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + edx*2]
mov ecx, dword [esp + 0x18]
mov ebp, dword [ecx + eax*4]
add ebp, ebx
mov dword [esp + 0x14], 0xffffffff
xor esi, esi
jmp dword [0x448fb8]
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 8]
jmp dword [eax*4 + 0x449014]
xor eax, eax
cmp esi, 0x20
setl al
jmp dword [eax*4 + 0x448fbc]
lea eax, [esi + ebp]
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.00401000
add esp, 8
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 0x38]
mov eax, ebx
xor eax, 0xffffefff
mov ecx, ebx
or ecx, 0x1000
xor edx, edx
test ecx, eax
setne dl
mov eax, 1
jmp dword [edx*4 + 0x448fc4]
jmp dword [0x448fd4]
movzx edx, byte [esp + 0x26]
xor ecx, ecx
cmp dl, 0xc2
sete cl
jmp dword [ecx*4 + 0x448fdc]
xor ecx, ecx
cmp dl, 0xc3
sete cl
jmp dword [ecx*4 + 0x448ffc]
mov ecx, ebx
shr ecx, 1
and ecx, 4
jmp dword [ecx + 0x448ff4]
xor eax, eax
cmp dl, 0xb8
sete al
jmp dword [eax*4 + 0x449004]
shr ebx, 2
and ebx, 4
jmp dword [ebx + 0x44900c]
add esi, dword [esp + 0x40]
xor eax, eax
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 8]
jmp dword [eax*4 + 0x449014]
mov eax, 1
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x14], ecx
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 8]
jmp dword [eax*4 + 0x449014]
xor eax, eax
mov esi, dword [esp + 0x14]
cmp esi, 0xffffffff
setne al
jmp dword [eax*4 + 0x44901c]
xor eax, eax
xor edx, edx
cmp eax, dword [0x44ab98]
setb dl
xor ecx, ecx
jmp dword [edx*4 + 0x449024]
mov dword [edx + ecx*8 + 4], esi
xor edx, edx
mov al, 1
jmp dword [edx*4 + 0x449034]
inc ecx
xor edx, edx
cmp ecx, dword [0x44ab98]
setb dl
jmp dword [edx*4 + 0x449024]
mov edx, dword [0x44ab9c]
xor ebx, ebx
cmp dword [edx + ecx*8], edi
sete bl
jmp dword [ebx*4 + 0x44902c]
mov edx, 1
jmp dword [edx*4 + 0x449034]
and al, 1
movzx eax, al
mov cl, 1
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 8]
jmp dword [eax*4 + 0x44904c]
mov eax, dword [0x44ab98]
lea ecx, [eax + 1]
mov dword [0x44ab98], ecx
mov ecx, dword [0x44ab9c]
mov dword [ecx + eax*8], edi
mov dword [ecx + eax*8 + 4], esi
mov al, 1
mov dword [esp + 0xc], eax
inc edx
xor eax, eax
mov ecx, dword [esp + 4]
cmp edx, dword [ebx + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x448f8c]
inc edx
xor eax, eax
mov ecx, dword [esp + 4]
cmp edx, dword [ebx + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x448f8c]
inc edx
xor eax, eax
mov ecx, dword [esp + 4]
cmp edx, dword [ebx + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x448f8c]
mov eax, dword [esp + 0xc]
and al, 1
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret
fld dword [ebx]
adc bh, bl
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx + ebx*8], cl
or al, 0xd9
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [edx - 0x27], dh
inc ebx
add byte [eax], dl
fild word [ebx]
xchg ecx, eax
fld dword [ebx]
adc bh, bl
inc ebx
add cl, cl
fld dword [ebx]
cmpsd dword [esi], dword es:[edi]
fiadd dword [ebx]
sbb bl, bl
fild dword [ebx]
jge 0x448f64
fild dword [ebx]
jge 0x448f64
inc ebx
add byte [edx], cl
fild word [ebx]
sbb ebx, 0xdcb90043
inc ebx
add byte [eax - 0x25], dl
inc ebx
add ah, dl
fadd qword [ebx]
loopne 0x448f80
inc ebx
add ah, ah
fadd qword [ebx]
loopne 0x448f88
inc ebx
add dl, ch
fadd qword [ebx]
invalid