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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x4c
mov ebp, dword [esp + 0x60]
movzx eax, word [ebp]
mov dword [esp], 0xabac0b1d
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 3
ja 0x43ce23
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx]
add ecx, 0xfaee7291
xor ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
add cl, 0xc1
mov edx, dword [esp + 4]
mov byte [esp + edx], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 4
jb 0x43cdf0
xor ecx, ecx
cmp dword [esp], eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x4480b4]
mov edi, dword [ebp + 0x3c]
mov ecx, dword [ebp + edi]
mov dword [esp + 0x18], 0x4d4c0a1e
mov word [esp + 0x1c], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 5
ja 0x43ce90
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 0x18]
add edx, 0x147ebecc
xor edx, esi
mov dword [esp + 4], edx
mov edx, dword [esp + 4]
add dl, 0x7e
mov esi, dword [esp]
mov byte [esp + esi + 0x18], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 6
jb 0x43ce60
xor edx, edx
cmp ecx, dword [esp + 0x18]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x4480bc]
mov esi, dword [ebp + edi + 0x78]
cmp dword [ebp + edi + 0x7c], 0
sete al
test esi, esi
sete cl
or cl, al
movzx ecx, cl
xor eax, eax
mov dword [esp + 0x10], esi
jmp dword [ecx*4 + 0x4480c4]
mov eax, dword [ebp + esi + 0x20]
add eax, ebp
mov dword [esp + 0x48], eax
mov eax, dword [ebp + esi + 0x24]
add eax, ebp
mov dword [esp + 0x38], eax
mov eax, dword [ebp + esi + 0x1c]
add eax, ebp
mov dword [esp + 0x34], eax
mov ebx, dword [0x449d38]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4480cc]
mov edi, dword [0x449d34]
mov eax, dword [ebp + esi + 0x18]
add eax, edi
mov ecx, 0xffffffff
cmp eax, 0x20000000
jae 0x43cf14
shl eax, 3
mov ecx, eax
push ecx
call fcn.00409630
add esp, 4
mov esi, eax
mov ecx, edi
and ecx, 8
mov eax, edi
or edi, 8
imul edi, ecx
xor ecx, 8
and eax, 0xfffffff7
imul eax, ecx
lea ebp, [eax + edi]
lea edx, [ebx + ebp]
cmp esi, ebx
jbe 0x43d006
cmp edx, esi
jbe 0x43d006
mov dword [esp + 0xc], ebx
test ebp, ebp
je 0x43cfad
mov ecx, dword [esp + 0xc]
add ecx, eax
dec ecx
lea edx, [esi + eax]
dec edx
neg eax
movzx ebx, byte [ecx + edi]
mov byte [edx + edi], bl
movzx ebx, byte [ecx + edi - 1]
mov byte [edx + edi - 1], bl
movzx ebx, byte [ecx + edi - 2]
mov byte [edx + edi - 2], bl
movzx ebx, byte [ecx + edi - 3]
mov byte [edx + edi - 3], bl
movzx ebx, byte [ecx + edi - 4]
mov byte [edx + edi - 4], bl
movzx ebx, byte [ecx + edi - 5]
mov byte [edx + edi - 5], bl
movzx ebx, byte [ecx + edi - 6]
mov byte [edx + edi - 6], bl
movzx ebx, byte [ecx + edi - 7]
mov byte [edx + edi - 7], bl
add edi, 0xfffffff8
cmp eax, edi
jne 0x43cf60
xor eax, eax
mov ecx, dword [esp + 0xc]
test ecx, ecx
sete al
mov ebp, dword [esp + 0x60]
jmp dword [eax*4 + 0x4480d4]
mov eax, dword [ebp + esi + 0x18]
mov ecx, 0xffffffff
cmp eax, 0x20000000
jae 0x43cfd8
shl eax, 3
mov ecx, eax
push ecx
call fcn.00409630
add esp, 4
mov dword [0x449d38], eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x3c], eax
xor ecx, ecx
mov dword [esp + 0x40], eax
xor eax, eax
cmp ecx, dword [ebp + esi + 0x18]
setb al
xor edi, edi
jmp dword [eax*4 + 0x4480ec]
mov ecx, ebp
shr ecx, 2
mov edi, esi
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov edi, esi
add edi, ebp
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, dword [0x449d38]
xor eax, eax
test ecx, ecx
sete al
mov ebp, dword [esp + 0x60]
jmp dword [eax*4 + 0x4480d4]
push ecx
call fcn.00409640
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [0x449d38], esi
jmp dword [0x4480e8]
lea eax, [esp + 0x1c]
mov dword [esp + 0x3c], eax
xor ecx, ecx
mov dword [esp + 0x40], eax
xor eax, eax
mov esi, dword [esp + 0x10]
cmp ecx, dword [ebp + esi + 0x18]
setb al
xor edi, edi
jmp dword [eax*4 + 0x4480ec]
and cl, 1
mov eax, ecx
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x38]
movzx eax, word [eax + edi*2]
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [0x449d3c], eax
inc edi
xor eax, eax
mov esi, dword [esp + 0x10]
cmp edi, dword [ebp + esi + 0x18]
setb al
mov ecx, dword [esp + 0x14]
jmp dword [eax*4 + 0x4480ec]
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x48]
mov eax, dword [eax + edi*4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x44], edi
jmp dword [0x4480f8]
and al, 1
movzx eax, al
mov cl, 1
jmp dword [eax*4 + 0x4481c4]
mov eax, dword [0x449d34]
lea ecx, [eax + 1]
mov dword [0x449d34], ecx
mov ecx, dword [0x449d38]
mov dword [ecx + eax*8], esi
mov edx, dword [esp + 8]
mov dword [ecx + eax*8 + 4], edx
mov cl, 1
inc edi
xor eax, eax
mov esi, dword [esp + 0x10]
cmp edi, dword [ebp + esi + 0x18]
setb al
jmp dword [eax*4 + 0x4480ec]
inc edi
xor eax, eax
mov esi, dword [esp + 0x10]
cmp edi, dword [ebp + esi + 0x18]
setb al
mov ecx, dword [esp + 0x14]
jmp dword [eax*4 + 0x4480ec]
mov eax, dword [esp + 0xc]
add eax, ebp
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.00401000
add esp, 8
mov ecx, dword [esp + 0x30]
mov edx, ecx
shr edx, 0xa
and edx, 4
jmp dword [edx + 0x448134]
movzx edx, byte [esp + 0x1e]
xor ebx, ebx
cmp dl, 0xc2
sete bl
jmp dword [ebx*4 + 0x44813c]
xor ebx, ebx
cmp dl, 0xc3
sete bl
jmp dword [ebx*4 + 0x44815c]
mov eax, edi
jmp dword [edi*4 + 0x448194]
jmp dword [eax*4 + 0x44819c]
xor eax, eax
cmp ebp, 0x20
setl al
jmp dword [eax*4 + 0x44811c]
mov ebx, ecx
shr ebx, 1
and ebx, 4
jmp dword [ebx + 0x448144]
xor ebx, ebx
cmp dl, 0xb8
sete bl
jmp dword [ebx*4 + 0x448164]
jmp dword [0x448178]
mov edx, ecx
or edx, 0x10
xor ecx, 0xffffffef
xor ebx, ebx
test edx, ecx
setne bl
jmp dword [ebx*4 + 0x44817c]
add ebp, eax
mov eax, 1
jmp dword [eax*4 + 0x448194]
xor eax, eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], ecx
jmp dword [eax*4 + 0x448194]
mov eax, dword [esp + 8]
mov dword [edx + ecx*8 + 4], eax
xor edx, edx
mov al, 1
jmp dword [edx*4 + 0x4481bc]
inc ecx
xor edx, edx
cmp ecx, dword [0x449d34]
setb dl
jmp dword [edx*4 + 0x4481ac]
mov edx, dword [0x449d38]
xor ebx, ebx
cmp dword [edx + ecx*8], esi
sete bl
jmp dword [ebx*4 + 0x4481b4]
mov edx, 1
jmp dword [edx*4 + 0x4481bc]
xor eax, eax
cmp dword [esp + 8], 0xffffffff
setne al
mov ebp, dword [esp + 0x60]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
jmp dword [eax*4 + 0x4481a4]
inc edi
xor eax, eax
mov esi, dword [esp + 0x10]
cmp edi, dword [ebp + esi + 0x18]
setb al
jmp dword [eax*4 + 0x4480ec]
xor eax, eax
xor edx, edx
cmp eax, dword [0x449d34]
setb dl
xor ecx, ecx
jmp dword [edx*4 + 0x4481ac]
mov eax, dword [esp + 0x38]
movzx eax, word [eax + edi*2]
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + eax*4]
add eax, ebp
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xffffffff
xor edi, edi
xor eax, eax
cmp edi, 0x20
setl al
xor ebp, ebp
jmp dword [eax*4 + 0x44811c]
mov eax, dword [esp + 0xc]
lea ecx, [eax + ebp]
mov ebx, 0xffffffff
xor eax, eax
nop
nop
mov edx, eax
cmp byte [ecx + ebx + 1], 0
lea ebx, [ebx + 1]
lea eax, [eax + 1]
jne 0x43d2e0
mov dword [esp + 0x18], 0xafadad40
mov eax, dword [esp + 0x40]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 6
ja 0x43d34e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 0x18]
add eax, 0x64b1a53f
xor eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x14
mov esi, dword [esp]
mov byte [esp + esi + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 7
jb 0x43d320
mov esi, 0xb14a5e2
test ebx, ebx
je 0x43d3d0
mov eax, dword [esp + 0x18]
lea esi, [ebx - 1]
mov ebp, 0xb14a5e2
mov edi, ecx
cmp esi, 3
jb 0x43d3af
mov esi, edx
and esi, 0xfffffffc
mov dword [esp + 8], ecx
mov edi, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ecx, byte [edi]
xor ecx, ebp
imul ecx, eax
movsx ebp, byte [edi + 1]
xor ebp, ecx
imul ebp, eax
movsx ecx, byte [edi + 2]
xor ecx, ebp
imul ecx, eax
movsx ebp, byte [edi + 3]
add edi, 4
xor ebp, ecx
imul ebp, eax
add esi, 0xfffffffc
jne 0x43d380
mov ecx, dword [esp + 8]
mov esi, ebp
test bl, 3
je 0x43d3d0
and edx, 3
xor ebx, ebx
nop
nop
nop
nop
nop
movsx esi, byte [edi + ebx]
xor esi, ebp
imul esi, eax
inc ebx
mov ebp, esi
cmp edx, ebx
jne 0x43d3c0
mov ebp, dword [esp + 0x60]
mov edi, dword [esp + 0x44]
jmp dword [0x448100]
mov dword [esp + 0x18], 0xafadad40
mov eax, dword [esp + 0x3c]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 6
ja case.0x43d031.9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x18]
add eax, 0x64b1a53f
xor eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x14
mov ecx, dword [esp]
mov byte [esp + ecx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 7
jb 0x43d410
jmp case.0x43d031.9
mov edx, ecx
mov eax, esi
xor eax, 0x43ac3278
xor ecx, ecx
or eax, dword [0x449d3c]
sete cl
jmp dword [ecx*4 + 0x448104]
xor eax, eax
cmp byte [edx], 0x4e
setne al
jmp dword [eax*4 + 0x44810c]
xor eax, eax
cmp byte [edx + 1], 0x74
setne al
jmp dword [eax*4 + 0x448114]
jmp dword [0x4481d8]
int3
rol byte [ebx], 1
push eax
rol byte [ebx], 1
push eax
rol byte [ebx], 1
push eax
rol byte [ebx], 1
push eax
rol byte [ebx], 1
pop esp
rol byte [ebx], 1
adc al, 0x43
add byte [ebp - 570407984], bh
rol dword [ebx], cl
rcl dl, 1
inc ebx
add dh, bl
rol dword [ebx], cl
push eax
aam 67
add byte [ebx - 0x2c], ch
inc ebx
add byte [eax + 0x7a0043d0], dl
aam 0x43
add byte [eax], ah
rol dword [ebx], 1
lahf
rol byte [ebx], cl
and cl, dl
inc ebx
add byte [edi - 0x2e], dl
inc ebx
add byte [eax - 0x2f], al
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [esi + 0x10043d4], dl
add byte [eax], al
add byte [esi - 0x2f], ah
inc ebx
add byte [eax + 0x7a0043d1], dl
rol dword [ebx], 1
mov al, 0xd1
inc ebx
add byte [ebp - 0x6fffbc2f], bh
rol dword [ebx], 1
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
jp 0x44812b
inc ebx
add byte [ebp - 0x6fffbc2f], bh
rol dword [ebx], 1
in al, dx
rol dword [ebx], 1
rcl cl, 1
inc ebx
add al, dl
rol dword [ebx], 1
rcl cl, 1
inc ebx
add al, dl
rol dword [ebx], 1
salc
rol dword [ebx], 1
in al, dx
rol dword [ebx], 1
cli
rol dword [ebx], 1
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
in al, dx
rol dword [ebx], 1
add dword [eax], eax
add byte [eax], al
push edi
rol byte [ebx], cl
cdq
rol dword [ebx], 1
nop
aam 67
add byte [eax + 0x740043d1], ah
rol byte [ebx], cl
mov edx, edx
inc ebx
add dh, dl
rol byte [ebx], 1
rol byte ss:[ebx], cl
dec ebx
rol byte [ebx], cl
adc dl, dl
inc ebx
add dh, dl
rol byte [ebx], 1
and edx, edx
inc ebx
add ah, ah
rol byte [ebx], 1
je 0x44819c
inc ebx
add byte [eax - 0x6fffbc2c], dl
aam 0x43
add byte [eax - 0x69ffbc2c], dl
aam 0x43
add byte [eax], al
add byte [eax], al
add al, al
aam 0x43
add al, al
aam 0x43
add byte [ecx], al
add byte [eax], al
add al, al
aam 0x43
add al, al
aam 0x43
add ah, dh
aad 0x43
add ah, dh
aad 0x43
add dl, dh
aad 0x43
add dl, dh
aad 0x43
add byte [esi], ah
aad 0x43
add byte [eax - 0x2b], al
inc ebx
add byte [eax - 0x2b], al
inc ebx
add byte [edi - 0x2b], dl
inc ebx
add byte [edi - 0x2b], dl
inc ebx
add byte [edi - 0x2b], dl
inc ebx
add bl, ah
aad 0x43
add byte [edi - 0x2b], ah
inc ebx
add byte [ebp - 0x2b], bh
inc ebx
add bh, dl
aad 0x43
add byte [eax - 0x2b], dl
inc ebx
add byte [eax - 0x2b], dl
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x2b], dl
inc ebx
add byte [edi - 0x2b], dl
inc ebx
add byte [edi - 0x2b], dl
inc ebx
add bl, ah
aad 0x43
add al, dh
aad 0x43
add dl, dh
aad 0x43
add dl, dh
aad 0x43
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x2b], al
inc ebx
add byte [ecx], al
add byte [eax], al
add al, dh
aad 0x43
add byte [eax - 0x2a], bh
inc ebx
add byte [esi - 0x2a], dh
inc ebx
add byte [0x760043d7], al
xlatb
inc ebx
add cl, bh
xlatb
inc ebx
add byte [edi], dl
fadd dword [ebx]
or eax, ebx
inc ebx
add byte [ecx], cl
fadd dword [ebx]
loopne 0x44825c
add dword [eax], eax
add byte [eax], al
invalid
inc ebx
add al, dh
salc
inc ebx
add dl, dh
salc
inc ebx
add dl, dh
salc
inc ebx
add bh, bl
xlatb
inc ebx
add byte [eax], al
xlatb
inc ebx
add al, dh
xlatb
inc ebx
add dl, dh
xlatb
inc ebx
add byte [ebx], cl
xlatb
inc ebx
add al, dh
salc
inc ebx
add al, dh
xlatb
inc ebx
add byte [esi], bl
fld dword [ebx]
push ds
inc ebx
add byte [esi], bl
fld dword [ebx]
mov ebx, 0xbb0043d8
fadd dword [ebx]
mov dword [0xa30043d8], eax
fadd dword [ebx]
mov dword [0xec0043d8], eax
inc ebx
add byte [ebx - 0x5cffbc28], bh
fadd dword [ebx]
mov dword [0xa30043d8], eax
fadd dword [ebx]
in al, dx
fadd dword [ebx]
pop ss
fld dword [ebx]
cld
fadd dword [ebx]
loopne 0x4482b2
inc ebx
add al, ah
fadd dword [ebx]
loopne 0x4482ba
inc ebx
add byte [ebx], cl
fld dword [ebx]
or ebx, ecx
inc ebx
add byte [ebx], cl
fld dword [ebx]
or ebx, ecx
inc ebx
add byte [ebx], cl
fld dword [ebx]
in al, dx
fadd dword [ebx]
pop ss
fld dword [ebx]
xchg ecx, ebx
inc ebx
add byte [esi - 0x26], al
inc ebx
add byte [edx + ebx*8 + 0x43], dl
add byte [edx + ebx*8 + 0x43], dl
add byte [edx + ebx*8 + 0x43], dl
add byte [edx + ebx*8 + 0x43], dl
add byte [edx], dh
fld dword [ebx]
xor bl, cl
inc ebx
add byte [edx], dh
fld dword [ebx]
pop esp
fld dword [ebx]
pop edx
fiadd dword [ebx]
insb byte es:[edi], dx
fld dword [ebx]
insb byte es:[edi], dx
fld dword [ebx]
insb byte es:[edi], dx
fld dword [ebx]
insb byte es:[edi], dx
fld dword [ebx]
push eax
fld dword [ebx]
jnp 0x44831b
add byte [edx], dh
fld dword [ebx]
xor bl, cl
inc ebx
add byte [ecx + ebx*8 + 0x43], bl
add byte [edx - 0x26], bl
inc ebx
add byte [ecx + ebx*8 + 0x43], ch
add byte [ecx + ebx*8 + 0x43], ch
add byte [ecx + ebx*8 + 0x43], ch
add byte [ecx + ebx*8 + 0x43], ch
add byte [eax - 0x27], dl
inc ebx
add byte [ebx - 0x27], bh
inc ebx
add byte [ebx - 0x27], bh
inc ebx
add byte [ecx + ebx*8 + 0x43], bl
add byte [ecx + ebx*8 + 0x43], bl
add byte [edx - 0x26], bl
inc ebx
add byte [edx - 0x26], bl
inc ebx
add bh, ah
fld dword [ebx]
jns 0x44833b
inc ebx
add bh, ch
fiadd dword [ebx]
fiadd dword [ebx]
sbb ebp, 0xdd810043
inc ebx
add ch, bh
fiadd dword [ebx]
sbb ebp, 0xdd790043
inc ebx
add byte [ebp - 0x25], bl
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ebp - 0x25], bl
inc ebx
add byte [ecx - 0x23], bh
inc ebx
add byte [edi - 0x25], bh
inc ebx
add byte [ecx - 0x7effbc23], al
fld qword [ebx]
sbb ebp, 0xdd6a0043
inc ebx
add al, dl
fild dword [ebx]
rcr bl, 1
inc ebx
add al, dh
fadd qword [ebx]
invalid