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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x44
mov ebp, dword [esp + 0x58]
movzx eax, word [ebp]
mov dword [esp + 0x24], 0x3a3b526e
mov dword [esp + 0x28], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 7
ja 0x43f67b
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x24]
mov esi, ecx
and esi, 0xee7b75b4
xor ecx, 0x6e7b75b4
lea ecx, [ecx + esi*2]
xor ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x73
mov edx, dword [esp]
mov byte [esp + edx + 0x24], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 8
jb 0x43f640
xor ecx, ecx
cmp dword [esp + 0x24], eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x44b178]
mov edi, dword [ebp + 0x3c]
mov ecx, dword [ebp + edi]
mov dword [esp + 0x24], 0x1b1aa094
mov word [esp + 0x28], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 5
ja 0x43f6f0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 0x24]
add edx, 0xd59159be
xor edx, esi
mov dword [esp + 4], edx
mov edx, dword [esp + 4]
add dl, 0x26
mov esi, dword [esp]
mov byte [esp + esi + 0x24], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 6
jb 0x43f6c0
mov edx, dword [esp + 0x24]
xor ebx, ebx
cmp ecx, edx
setne bl
xor eax, eax
jmp dword [ebx*4 + 0x44b190]
mov ebx, dword [ebp + edi + 0x78]
cmp dword [ebp + edi + 0x7c], 0
sete al
test ebx, ebx
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44b198]
mov eax, dword [ebp + ebx + 0x20]
add eax, ebp
mov dword [esp + 0x40], eax
mov eax, dword [ebp + ebx + 0x24]
add eax, ebp
mov dword [esp + 0x20], eax
mov eax, dword [ebp + ebx + 0x1c]
add eax, ebp
mov dword [esp + 0x1c], eax
mov esi, dword [0x44ce18]
xor eax, eax
test esi, esi
sete al
mov dword [esp + 0xc], ebx
jmp dword [eax*4 + 0x44b1a0]
mov eax, ebx
mov edi, dword [0x44ce14]
mov eax, dword [ebp + ebx + 0x18]
add eax, edi
mov ecx, 0xffffffff
cmp eax, 0x20000000
jae 0x43f776
shl eax, 3
mov ecx, eax
push ecx
call fcn.004096b0
add esp, 4
mov ebx, eax
mov ecx, edi
and ecx, 0xfffffff7
mov eax, edi
and eax, 8
or edi, 8
imul edi, eax
xor eax, 8
imul eax, ecx
lea ebp, [eax + edi]
lea edx, [esi + ebp]
cmp ebx, esi
jbe 0x43f89f
cmp edx, ebx
jbe 0x43f89f
mov dword [esp + 8], ebx
test ebp, ebp
je 0x43f81d
lea ecx, [esi + eax]
dec ecx
mov edx, dword [esp + 8]
add edx, eax
dec edx
neg eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
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 0x43f7d0
xor eax, eax
test esi, esi
sete al
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 8]
jmp dword [eax*4 + 0x44b1a8]
mov dword [0x44ce18], ebx
xor edx, edx
xor eax, eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], 0
cmp edx, dword [ebp + ecx + 0x18]
setb al
xor edx, edx
jmp dword [eax*4 + 0x44b1b0]
xor eax, eax
jmp 0x43fc84
mov eax, dword [ebp + ebx + 0x18]
mov ecx, 0xffffffff
cmp eax, 0x20000000
jae 0x43f875
shl eax, 3
mov ecx, eax
push ecx
call fcn.004096b0
add esp, 4
mov dword [0x44ce18], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x10], 0
cmp ecx, dword [ebp + ebx + 0x18]
setb al
xor edx, edx
jmp dword [eax*4 + 0x44b1b0]
mov ecx, ebp
shr ecx, 2
mov edi, ebx
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov edi, ebx
add edi, ebp
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov esi, dword [0x44ce18]
xor eax, eax
test esi, esi
sete al
mov ebp, dword [esp + 0x58]
jmp dword [eax*4 + 0x44b1a8]
push esi
call fcn.004096c0
add esp, 4
mov dword [0x44ce18], ebx
xor edx, edx
xor eax, eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], 0
cmp edx, dword [ebp + ecx + 0x18]
setb al
xor edx, edx
jmp dword [eax*4 + 0x44b1b0]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 8]
movzx eax, word [eax + edx*2]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + eax*4]
mov dword [0x44ce1c], eax
inc edx
xor eax, eax
mov ebp, dword [esp + 0x58]
mov ecx, dword [esp + 0xc]
cmp edx, dword [ebp + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x44b1b0]
mov eax, dword [esp + 0x40]
mov dword [esp + 8], edx
mov eax, dword [eax + edx*4]
add eax, ebp
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 0x43f950
mov dword [esp], 0x20203ecf
mov dword [esp + 4], 0
mov esi, dword [esp + 4]
cmp esi, 3
ja 0x43f9be
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 4]
mov edi, dword [esp + 4]
movzx edi, byte [esp + edi]
mov ebx, esi
and ebx, 0xfb75648d
xor esi, 0x7b75648d
lea esi, [esi + ebx*2]
xor esi, edi
mov dword [esp + 0x24], esi
mov ebx, dword [esp + 0x24]
add bl, 0x51
mov esi, dword [esp + 4]
mov byte [esp + esi], bl
inc dword [esp + 4]
mov esi, dword [esp + 4]
cmp esi, 4
jb 0x43f980
test edx, edx
mov dword [esp + 0x14], eax
je 0x43f9e0
mov ebx, dword [esp]
lea esi, [edx - 1]
cmp esi, 3
jae 0x43f9f0
mov esi, 0xb14a5e2
mov ebp, eax
jmp 0x43fa2c
mov edi, 0xb14a5e2
jmp 0x43fa51
mov edi, ecx
and edi, 0xfffffffc
mov esi, 0xb14a5e2
mov ebp, eax
nop
nop
nop
nop
movsx eax, byte [ebp]
xor eax, esi
imul eax, ebx
movsx esi, byte [ebp + 1]
xor esi, eax
imul esi, ebx
movsx eax, byte [ebp + 2]
xor eax, esi
imul eax, ebx
movsx esi, byte [ebp + 3]
add ebp, 4
xor esi, eax
imul esi, ebx
add edi, 0xfffffffc
jne 0x43fa00
mov edi, esi
test dl, 3
je 0x43fa51
and ecx, 3
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
movsx edi, byte [ebp + edx]
xor edi, esi
imul edi, ebx
inc edx
mov esi, edi
cmp ecx, edx
jne 0x43fa40
mov eax, edi
xor eax, 0x43ac3278
xor ecx, ecx
or eax, dword [0x44ce1c]
sete cl
jmp dword [ecx*4 + 0x44b1b8]
xor ecx, ecx
mov eax, dword [esp + 0x14]
cmp byte [eax], 0x4e
setne cl
mov ebp, dword [esp + 0x58]
mov edx, dword [esp + 8]
jmp dword [ecx*4 + 0x44b1c0]
mov ecx, eax
xor eax, eax
cmp byte [ecx + 1], 0x74
setne al
jmp dword [eax*4 + 0x44b1c8]
mov eax, dword [esp + 0x20]
movzx eax, word [eax + edx*2]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + eax*4]
add eax, ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0xffffffff
xor esi, esi
xor eax, eax
cmp esi, 0x20
setl al
jmp dword [eax*4 + 0x44b1d0]
jmp dword [ebp*4 + 0x44b208]
xor eax, eax
cmp esi, 0x20
setl al
jmp dword [eax*4 + 0x44b1d0]
mov eax, dword [esp + 0x14]
add eax, esi
lea ecx, [esp + 0x24]
push ecx
push eax
call fcn.00401000
add esp, 8
mov ecx, dword [esp + 0x3c]
mov edx, ecx
shr edx, 0xa
and edx, 4
mov ebp, 1
jmp dword [edx + 0x44b1d8]
movzx ebx, byte [esp + 0x2a]
xor edx, edx
cmp bl, 0xc2
sete dl
jmp dword [edx*4 + 0x44b1e0]
xor edx, edx
cmp bl, 0xc3
sete dl
jmp dword [edx*4 + 0x44b1f0]
mov edx, ecx
shr edx, 1
and edx, 4
jmp dword [edx + 0x44b1e8]
xor edx, edx
cmp bl, 0xb8
sete dl
jmp dword [edx*4 + 0x44b1f8]
shr ecx, 2
and ecx, 4
jmp dword [ecx + 0x44b200]
add esi, eax
xor eax, eax
jmp dword [eax*4 + 0x44b208]
mov eax, 1
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], ecx
jmp dword [eax*4 + 0x44b208]
xor eax, eax
mov esi, dword [esp + 0x18]
cmp esi, 0xffffffff
setne al
mov ebp, dword [esp + 0x58]
jmp dword [eax*4 + 0x44b210]
jmp dword [0x44b224]
xor eax, eax
xor edx, edx
cmp eax, dword [0x44ce14]
setb dl
xor ecx, ecx
jmp dword [edx*4 + 0x44b228]
mov dword [edx + ecx*8 + 4], esi
xor edx, edx
mov al, 1
jmp dword [edx*4 + 0x44b238]
inc ecx
xor edx, edx
cmp ecx, dword [0x44ce14]
setb dl
jmp dword [edx*4 + 0x44b228]
mov edx, dword [0x44ce18]
xor ebx, ebx
cmp dword [edx + ecx*8], edi
sete bl
jmp dword [ebx*4 + 0x44b230]
mov edx, 1
jmp dword [edx*4 + 0x44b238]
and al, 1
movzx eax, al
mov cl, 1
mov dword [esp + 0x10], ecx
jmp dword [eax*4 + 0x44b240]
mov eax, dword [0x44ce14]
lea ecx, [eax + 1]
mov dword [0x44ce14], ecx
mov ecx, dword [0x44ce18]
mov dword [ecx + eax*8], edi
mov dword [ecx + eax*8 + 4], esi
mov al, 1
mov dword [esp + 0x10], eax
mov edx, dword [esp + 8]
inc edx
xor eax, eax
mov ecx, dword [esp + 0xc]
cmp edx, dword [ebp + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x44b1b0]
inc edx
xor eax, eax
mov ecx, dword [esp + 0xc]
cmp edx, dword [ebp + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x44b1b0]
mov edx, dword [esp + 8]
inc edx
xor eax, eax
mov ecx, dword [esp + 0xc]
cmp edx, dword [ebp + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x44b1b0]
mov eax, dword [esp + 0x10]
and al, 1
mov ecx, dword [case.0x43f6fd.1]
nop
nop
nop
nop
nop
nop
jmp ecx
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret
int3
test byte [ebx], 0x92
cld
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx + 0x40043fc], bl
test dword [ebx], case.0x43f6fd.1
and edi, esi
inc ebx
add byte [ecx - 8], bl
inc ebx
add byte [edi - 9], dl
inc ebx
add byte [eax - 8], ah
inc ebx
add cl, dl
clc
inc ebx
add byte [ebx], dh
clc
inc ebx
add byte [esi - 4], bh
inc ebx
add byte [ecx], dh
stc
inc ebx
add byte [edx - 6], ch
inc ebx
add byte [eax], al
stc
inc ebx
add byte [ebp + 0x500043fa], al
cld
inc ebx
add byte [edi + 0x500043fa], dl
cld
inc ebx
add byte [edi - 0x19ffbc05], al
cli
inc ebx
add byte [ecx], dl
sti
inc ebx
add al, dl
cli
inc ebx
add byte [0x400043fb], ah
sti
inc ebx
add byte [ebp - 5], cl
inc ebx
add al, dl
cli
inc ebx
add byte [ebp - 5], cl
inc ebx
add al, dl
cli
inc ebx
add byte [eax - 5], ch
inc ebx
add byte [ebx + edi*8 + 0x43], bl
add byte [eax - 5], ch
inc ebx
add byte [ebx - 5], dh
inc ebx
add bh, dl
cli
inc ebx
add byte [edi + 0x650043fb], al
cld
inc ebx
add byte [eax - 0x5fffbc05], ah
sti
inc ebx
add byte [eax - 0x5fffbc05], ah
sti
inc ebx
add byte [esi + 0x30043fb], ah
cld
inc ebx
add dl, ah
sti
inc ebx
add bh, dh
sti
inc ebx
add al, al
sti
inc ebx
add byte [ebx], al
cld
inc ebx
add bh, cl
sti
inc ebx
add byte [0x650043fc], dl
cld
inc ebx
add byte [eax - 0x6fffbc04], dl
cld
inc ebx
add byte [edx - 0x6fffbc04], dl
cld
inc ebx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [0x350043fe], dh
inc byte [ebx]
cmp al, 0xfe
inc ebx
add byte [esi + edi*8], bh
inc ebx
add byte [ebp - 3], cl
inc ebx
add byte [ebp - 3], cl
inc ebx
add byte [ebp - 3], cl
inc ebx
add byte [ebp - 3], cl
inc ebx
add byte [ebx], ah
inc byte [ebx]
cmp al, 0xfe
inc ebx
add byte [eax - 0x45ffbc03], al
std
inc ebx
add byte [edx - 0xfffbc03], bh
std
inc ebx
add al, dh
std
inc ebx
add al, dh
std
inc ebx
add dl, dh
std
inc ebx
add dl, dh
std
inc ebx
add byte [ecx], al
inc byte [ebx]
adc al, 0xfe
inc ebx
add byte [esi + edi*8], dl
inc ebx
add byte [ebx], ah
inc byte [ebx]
cmp al, 0xfe
inc ebx
add byte [esi + edi*8], bh
inc ebx
add byte [edx - 0xfffbc03], bh
std
inc ebx
add byte [esi + edi*8 + 0x43], bl
add byte [ebx], ch
add byte [eax + eax - 0x27], al
inc byte [ebx]
fsin
inc ebx
add bh, dl
inc byte [ebx]
xlatb
inc byte [ebx]
xlatb
inc byte [ebx]
jne 0x44b2e5
inc dword [ebx]
jne 0x44b2e9
inc ebx
add byte [ebp - 1], dh
inc dword [ebx]
js 0x44b2ed
inc ebx
add byte [eax - 1], bh
inc dword [ebx]
jle 0x44b2f1
inc ebx
add byte [esi - 1], bh
inc dword [ebx]
invalid
inc ebx
add byte [esi - 0x1cffbc01], cl
inc dword [ebx]
add dword [eax], eax
add byte [eax], al
jecxz 0x44b301
inc dword [ebx]
jecxz 0x44b305
inc ebx
add bl, ah
inc dword [ebx]
sub eax, dword [eax]
inc esp
add al, dh
inc ebx
add byte [ebx], ch
add byte [eax + eax - 0x10], al
inc dword [ebx]
lock inc dword [ebx]
inc dword [ebx]
inc dword [ebx]
sbb dword [eax], eax
inc esp
add byte [ecx], bl
add byte [eax + eax + 0x19], al
add byte [eax + eax + 0x19], al
add byte [eax + eax + 1], al
add byte [eax + eax + 1], al
add byte [eax + eax + 0x51], al
inc dword [ebx]
pushal
inc dword [ebx]
invalid