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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov esi, esp
mov edi, ecx
mov dword [esi + 0xcc], 0
mov dword [esi + 0xc8], 0
mov dword [esi + 0xc4], 0
mov dword [esi + 0xc0], 0
mov dword [esi + 0xbc], 0
mov dword [esi + 0xb0], 0
mov dword [esi + 0xb4], 2
mov dword [esi + 0xb8], 1
push 0xc904973f
push dword [0x44cd9c]
call fcn.00440990
add esp, 8
lea ecx, [esi + 0x28]
lea edx, [esi + 0xb0]
push ecx
push edx
push dword [ebp + 0xc]
push dword [ebp + 8]
call eax
test eax, eax
je 0x42084b
cmp dword [edi], 0xffffffff
jne 0x4208f5
jmp 0x420de3
push 0x39be051d
push dword [0x44cd9c]
call fcn.00440990
add esp, 8
mov dword [esi], eax
push 0x847b02a2
push dword [0x44cd9c]
call fcn.00440990
add esp, 8
mov dword [esi + 4], eax
push 0x2e775759
push dword [0x44cd9c]
call fcn.00440990
add esp, 8
mov dword [esi + 8], eax
mov ebx, dword [esi + 0x28]
jmp 0x4208a3
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
je 0x4208d4
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [esi]
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x4208a0
push dword [ebx + 0x10]
push dword [ebx + 0x18]
push eax
call dword [esi + 4]
test eax, eax
je 0x4208d4
push dword [edi]
call dword [esi + 8]
mov dword [edi], 0xffffffff
jmp 0x4208a0
push 0x18c354a9
push dword [0x44cd9c]
call fcn.00440990
add esp, 8
push dword [esi + 0x28]
call eax
cmp dword [edi], 0xffffffff
je 0x420de3
mov dword [esi + 0x20], edi
mov ecx, dword [ebp + 0x10]
mov eax, 0xffffffff
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edx, 2
cmp byte [ecx + eax + 1], 0
lea eax, [eax + 1]
jne 0x420910
and edx, 0x120
xor ebx, ebx
mov edi, dword [ebp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx], 0
lea ebx, [ebx + 1]
jne 0x420930
add edx, ebx
add edx, 0xfffffffe
mov ebx, dword [ebp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edx
cmp byte [ebx], 0
lea ebx, [ebx + 1]
jne 0x420950
xor eax, 0x90
add eax, edx
add eax, 3
and eax, 0xfffffffc
call fcn.004082d0
mov eax, esp
and eax, 0xfffffff0
mov dword [esi], eax
mov esp, eax
mov dword [esi + 0x2c], 0x9f9e89d0
mov dword [esi + 0x30], 0xf9fffa9c
mov dword [esi + 0x34], 0x93d0dcf9
mov dword [esi + 0x38], 0xedaab6b3
mov word [esi + 0x3c], 0x21c0
mov dword [esi + 0x3e], 0
mov byte [esi + 0x42], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esi + eax + 0x2c]
lea ebx, [eax - 0x184d1834]
and ebx, edx
add edx, eax
add edx, 0xe7b2e7cc
add ebx, ebx
sub edx, ebx
add dl, 4
mov byte [esi + eax + 0x2c], dl
mov edx, eax
and edx, 1
and eax, 0x1e
mov ebx, eax
xor ebx, 0xfffffffe
xor eax, 0x1e
or eax, ebx
not eax
add eax, edx
cmp eax, 0x17
jb 0x4209b0
mov dword [esi + 0xc], 0x493e202d
mov byte [esi + 0x10], 0x68
mov dword [esi + 0x11], 0
mov byte [esi + 0x15], 0
xor edi, edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edi
and eax, 0xe
mov ebx, edx
xor ebx, 0xe7
add ebx, eax
xor bl, byte [esi + edx + 0xc]
add bl, 0x7d
mov byte [esi + edx + 0xc], bl
inc edx
add edi, 2
cmp edx, 0xa
jne 0x420a10
movzx eax, byte [esi + 0xc]
mov ebx, dword [esi]
test al, al
je 0x420a5b
lea edx, [esi + 0xd]
mov ebx, dword [esi]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x420a50
mov byte [ebx], 0
movzx eax, byte [ecx]
test al, al
je 0x420a7d
inc ecx
mov edx, dword [ebp + 8]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420a70
jmp 0x420a80
mov edx, dword [ebp + 8]
mov byte [ebx], 0
movzx eax, byte [esi + 0x2c]
test al, al
je 0x420a9b
lea ecx, [esi + 0x2d]
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420a90
mov byte [ebx], 0
movzx eax, byte [edx]
test al, al
je 0x420abb
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x420ab0
mov byte [ebx], 0x3a
mov dword [esi + 0x2c], 0xb3d71b1d
mov dword [esi + 0x30], 0xc3c7b7c3
mov dword [esi + 0x34], 0x4cfa133d
mov dword [esi + 0x38], 0x404d3f39
mov dword [esi + 0x3c], 0x47374a33
mov dword [esi + 0x40], 0x4815efe9
mov dword [esi + 0x44], 0x282f5756
mov dword [esi + 0x48], 0x51515458
mov dword [esi + 0x4c], 0x5337e10a
mov dword [esi + 0x50], 0x23275723
mov dword [esi + 0x54], 0x8c0c41d
mov dword [esi + 0x58], 0x8231e19
mov dword [esi + 0x5c], 0x6c011315
mov dword [esi + 0x60], 0x63136e17
mov dword [esi + 0x64], 0x620f1235
mov dword [esi + 0x68], 0x1c16cd26
mov dword [esi + 0x6c], 0x3301737d
mov dword [esi + 0x70], 0xe7a1877
mov dword [esi + 0x74], 0x5c5b026d
mov dword [esi + 0x78], 0x604b0001
mov dword [esi + 0x7c], 0x41550160
mov dword [esi + 0x80], 0x6051746c
mov dword [esi + 0x84], 0xb1b74413
mov dword [esi + 0x88], 0x526d687f
mov dword [esi + 0x8c], 0x70606477
mov dword [esi + 0x90], 0x621d661b
mov dword [esi + 0x94], 0x5e4c642c
mov dword [esi + 0x98], 0x20272e2e
mov dword [esi + 0x9c], 0x62927b2e
mov dword [esi + 0xa0], 0x8a8c8867
mov word [esi + 0xa4], 0xa992
mov byte [esi + 0xa8], 0
mov word [esi + 0xa6], 0
mov eax, 0xf8
mov ecx, 7
nop
nop
movzx edx, byte [esi + eax - 0xcc]
lea edi, [edx + edx]
not edi
add edi, edx
or edi, ecx
or edx, eax
and edx, edi
add dl, 0x28
mov byte [esi + eax - 0xcc], dl
inc eax
dec ecx
cmp eax, 0x175
jne 0x420bd0
inc ebx
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx]
test al, al
je 0x420c1b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420c10
mov byte [ebx], 0
movzx eax, byte [esi + 0x2c]
test al, al
je 0x420c3b
lea ecx, [esi + 0x2d]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420c30
mov byte [ebx], 0
mov edi, dword [esi]
sub ebx, edi
push 0xd0026952
push dword [0x44cd9c]
call fcn.00440990
add esp, 8
push 0
push ebx
push edi
mov edi, dword [esi + 0x20]
push dword [edi]
call eax
cmp eax, 0xffffffff
jne 0x420ca7
cmp dword [edi], 0xffffffff
je 0x420ca7
push 0x59ea2086
push dword [0x44cd9c]
call fcn.00440990
add esp, 8
push 2
push dword [edi]
call eax
push 0x2e775759
push dword [0x44cd9c]
call fcn.00440990
add esp, 8
push dword [edi]
call eax
mov dword [edi], 0xffffffff
xor eax, eax
jmp 0x421293
cmp eax, 0xffffffff
je 0x420de3
push 0x400
call fcn.004083f0
add esp, 4
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
add eax, 0x400
mov dword [esi + 0x14], eax
lea eax, [esi + 0xc]
mov ecx, edi
push eax
call fcn.004212a0
mov cl, 1
mov dword [esi + 8], ecx
test al, al
je 0x42127b
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov ebx, edi
sub ebx, ecx
mov eax, ecx
cmp edi, dword [esi + 0x14]
jne 0x420e50
mov eax, ecx
mov ecx, edi
xor ecx, eax
mov dword [esi], eax
not eax
and eax, edi
add eax, eax
sub eax, ecx
mov ecx, eax
shr ecx, 1
add ecx, eax
lea eax, [ebx + 0x3f8710ff]
add eax, 0xc078ef02
cmp ecx, eax
ja 0x420d1f
mov ecx, eax
mov dword [esi + 8], ecx
push ecx
call fcn.004083f0
add esp, 4
mov ecx, dword [esi]
test ecx, ecx
je 0x420e3f
cmp eax, ecx
mov dword [esi + 4], ebx
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], eax
jbe 0x420dea
cmp edi, eax
jbe 0x420dea
test ebx, ebx
je 0x420e29
mov edx, dword [esi + 4]
mov eax, dword [esi]
add eax, edx
dec eax
mov ecx, dword [esi + 0x1c]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x420d82
neg edi
xor edx, edx
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x420d6f
add eax, edx
add ecx, edx
add edx, dword [esi + 4]
mov edi, dword [esi]
sub edi, dword [esi + 0x18]
cmp edi, 0xfffffff8
ja 0x420e29
neg edx
xor edi, edi
movzx ebx, byte [eax + edi]
mov byte [ecx + edi], bl
movzx ebx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], bl
movzx ebx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], bl
movzx ebx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], bl
movzx ebx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], bl
movzx ebx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], bl
movzx ebx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], bl
movzx ebx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x420d94
jmp 0x420e29
xor eax, eax
jmp 0x421293
mov ecx, ebx
shr ecx, 2
mov edx, dword [esi]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
lea edi, [eax + edx]
add edx, dword [esi]
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov eax, edx
mov dword [esi + 0x24], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x420e29
mov eax, dword [esi + 4]
and eax, 2
movzx ecx, byte [edx + eax]
mov edx, dword [esi + 0x24]
mov byte [edx + eax], cl
push dword [esi + 0xc]
call fcn.00408400
add esp, 4
mov ebx, dword [esi + 4]
mov ecx, dword [esi]
mov edi, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0xc], eax
lea edx, [eax + ebx]
mov dword [esi + 0x10], edx
mov edx, dword [esi + 8]
add edx, eax
mov dword [esi + 0x14], edx
cmp ebx, ebx
jae 0x420eb2
add eax, ebx
add ecx, ebx
sub ecx, edi
cmp ecx, 1
jle 0x420e68
lea edi, [eax + ecx]
lea edx, [eax + ecx]
dec edx
jmp 0x420ead
lea edi, [eax + 1]
mov dword [esi], ecx
mov ecx, dword [esi]
shr ecx, 2
mov edx, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, dword [esi]
and edx, 0xfffffffc
lea edi, [eax + edx]
inc edi
add edx, eax
mov ecx, dword [esi]
shr ecx, 1
and ecx, 1
mov dword [esi + 4], ebx
mov ebx, edx
mov eax, edi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, dword [esi]
mov ebx, dword [esi + 4]
test cl, 1
je 0x420eb2
and ecx, 2
mov edi, eax
add edi, ecx
add edx, ecx
movzx ecx, byte [edx]
mov byte [edi], cl
mov eax, dword [esi + 0xc]
mov byte [eax + ebx], 0
mov eax, dword [esi + 0xc]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x2c], 0xd3d6d5c8
mov dword [esi + 0x30], 0x3628342b
mov dword [esi + 0x34], 0x3a3a3828
mov byte [esi + 0x38], 0xc
mov dword [esi + 0x39], 0
mov byte [esi + 0x3d], 0
xor ecx, ecx
nop
movzx edi, byte [esi + ecx + 0x2c]
mov edx, ecx
or edx, 0xc0
and edx, edi
mov eax, ecx
xor eax, 0x3f
and eax, edi
mov ebx, 0x5d69fc3f
sub ebx, ecx
xor ebx, edi
sub ebx, edi
add ebx, eax
or ebx, edx
lea eax, [ebx + ebx]
not eax
add eax, ebx
add al, 0x40
mov byte [esi + ecx + 0x2c], al
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
cmp ecx, 0x12
jb 0x420ef0
movzx edx, byte [esi + 0x2c]
mov edi, dword [esi + 4]
mov eax, edi
mov dword [esi + 8], edi
test dl, dl
mov ecx, dword [esi + 0x20]
je 0x420f97
lea eax, [esi + 0x2c]
mov dword [esi], eax
mov ebx, edi
mov dword [esi + 8], edi
jmp 0x420f6c
mov eax, dword [esi]
movzx edx, byte [eax]
test dl, dl
mov ecx, dword [esi + 0x20]
je 0x420f97
movzx eax, byte [ebx]
test al, al
je 0x42126a
inc ebx
inc dword [esi]
mov ecx, dword [esi + 8]
lea edi, [ecx + 1]
cmp al, dl
je 0x420f8b
mov eax, edi
mov dword [esi + 8], edi
mov ebx, edi
mov edi, dword [esi + 4]
je 0x420f60
lea eax, [esi + 0x2c]
mov dword [esi], eax
jmp 0x420f60
cmp dword [esi + 8], 0
je 0x42126a
mov eax, dword [esi + 0x18]
jmp 0x420fbe
cmp dl, dh
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
je 0x42127b
mov edx, edi
sub edx, eax
je 0x420fe1
mov ebx, eax
mov dword [esi + 4], edi
xor ecx, ecx
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
xor ecx, ecx
mov edi, dword [esi + 4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [esi + 0x20]
add dword [esi + 0x10], edx
lea eax, [esi + 0xc]
push eax
call fcn.004212a0
test al, al
je 0x421274
mov dword [esi + 8], eax
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov ecx, edi
sub ecx, eax
mov dword [esi + 4], eax
cmp edi, dword [esi + 0x14]
mov dword [esi], ecx
je 0x421020
cmp ecx, ecx
jb 0x421191
jmp 0x4211ed
mov edx, ecx
mov ecx, edi
mov eax, dword [esi + 4]
xor ecx, eax
not eax
and eax, edi
add eax, eax
sub eax, ecx
mov ebx, eax
shr ebx, 1
add ebx, eax
lea eax, [edx + 0x3f8710ff]
add eax, 0xc078ef02
cmp ebx, eax
ja 0x421048
mov ebx, eax
push ebx
call fcn.004083f0
add esp, 4
mov edx, dword [esi + 4]
test edx, edx
je 0x42117d
mov dword [esi + 0x24], ebx
cmp eax, edx
mov ebx, dword [esi]
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], eax
jbe 0x42111f
cmp edi, eax
jbe 0x42111f
test ebx, ebx
je 0x421169
mov edx, dword [esi]
mov eax, dword [esi + 4]
add eax, edx
dec eax
mov ecx, dword [esi + 0x1c]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x4210b2
neg edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x4210a0
add eax, edx
add ecx, edx
add edx, dword [esi]
mov edi, dword [esi + 4]
sub edi, dword [esi + 0x18]
cmp edi, 0xfffffff8
ja 0x421169
neg edx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edi]
mov byte [ecx + edi], bl
movzx ebx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], bl
movzx ebx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], bl
movzx ebx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], bl
movzx ebx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], bl
movzx ebx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], bl
movzx ebx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], bl
movzx ebx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x4210d0
jmp 0x421169
mov ecx, ebx
shr ecx, 2
mov ebx, edx
mov edi, eax
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov ecx, edx
mov edi, dword [esi]
mov edx, edi
and edx, 0xfffffffc
lea ebx, [eax + edx]
add edx, ecx
mov ecx, edi
shr ecx, 1
and ecx, 1
mov eax, edx
mov dword [esi + 0xac], ebx
mov edi, ebx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test byte [esi], 1
je 0x421169
mov eax, dword [esi]
and eax, 2
movzx ecx, byte [edx + eax]
mov edx, dword [esi + 0xac]
mov byte [edx + eax], cl
push dword [esi + 0xc]
call fcn.00408400
add esp, 4
mov edi, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov ebx, dword [esi + 0x24]
mov dword [esi + 0xc], eax
mov ecx, dword [esi]
lea edx, [eax + ecx]
mov dword [esi + 0x10], edx
add ebx, eax
mov dword [esi + 0x14], ebx
cmp ecx, ecx
jae 0x4211ed
add eax, ecx
mov edx, dword [esi + 4]
add edx, ecx
sub edx, edi
cmp edx, 1
jle 0x4211a7
lea ebx, [eax + edx]
add edx, eax
dec edx
jmp 0x4211e6
lea edi, [eax + 1]
mov ecx, edx
shr ecx, 2
mov ebx, eax
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov ebx, edx
and edx, 0xfffffffc
lea edi, [eax + edx]
inc edi
add edx, eax
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov eax, edx
mov dword [esi + 4], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [esi]
test bl, 1
je 0x4211ed
mov edi, ebx
and edi, 2
mov ebx, dword [esi + 4]
add ebx, edi
add edx, edi
movzx ecx, byte [edx]
mov byte [ebx], cl
mov ecx, dword [esi]
mov eax, dword [esi + 0xc]
mov byte [eax + ecx], 0
mov ebx, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], eax
mov word [esi + 0x2c], 0x9795
mov byte [esi + 0x2e], 0x8e
lea eax, [esi + 0x2f]
mov byte [eax + 2], 0
mov word [eax], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 4
mov eax, edx
xor eax, 0xe2
add eax, edi
xor al, byte [esi + edx + 0x2c]
add al, 0x96
mov byte [esi + edx + 0x2c], al
inc edx
add ecx, 2
cmp edx, 6
jne 0x421220
xor ecx, ecx
mov edi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [edi + ecx]
mov dh, byte [esi + ecx + 0x2c]
test dl, dl
je 0x420fb0
inc ecx
cmp dl, dh
je 0x421250
jmp 0x420fb0
push 0x3ea
call fcn.004204f0
mov dword [esi + 8], 0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x421290
cmp eax, dword [esi + 0x10]
je 0x421290
push eax
call fcn.00408400
add esp, 4
mov eax, dword [esi + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc