Function at 0x420f80
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, 0xfffffff8
sub esp, 0xa00
mov dword [esp + 0x58], 0x21d127d3
mov dword [esp + 0x5c], 0x3dae23af
mov dword [esp + 0x60], 0x398a3f87
mov dword [esp + 0x64], 0x35b63b83
mov dword [esp + 0x68], 0x31c137bf
mov dword [esp + 0x6c], 0xdbd33bd
mov dword [esp + 0x70], 0x9f90fae
mov dword [esp + 0x74], 0x5810b84
mov dword [esp + 0x78], 0x1b907b4
mov dword [esp + 0x7c], 0x1db403c7
mov dword [esp + 0x80], 0x19921fa3
mov dword [esp + 0x84], 0x15ab1b91
mov dword [esp + 0x88], 0x11a317a6
mov dword [esp + 0x8c], 0xeda513e6
mov dword [esp + 0x90], 0xe954ef5d
mov dword [esp + 0x94], 0xe55deb59
mov dword [esp + 0x98], 0xe130e712
mov dword [esp + 0x9c], 0xfd6ee35f
mov dword [esp + 0xa0], 0xf94fff75
mov dword [esp + 0xa4], 0xf54ffb4a
mov dword [esp + 0xa8], 0xf149f759
mov dword [esp + 0xac], 0xcd7cf342
mov dword [esp + 0xb0], 0xc973cf77
mov dword [esp + 0xb4], 0xc5cacb77
mov byte [esp + 0xba], 0
mov word [esp + 0xb8], 0
lea eax, [esp + 0xb8]
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 0x92
mov ebx, edx
xor ebx, 0x49
add ebx, esi
xor bl, byte [esp + edx + 0x58]
add bl, 0x93
mov byte [esp + edx + 0x58], bl
inc edx
add ecx, 2
cmp edx, 0x63
jne 0x4210a0
lea edi, [esp + 0x498]
lea edx, [esp + 0x58]
mov ecx, 0x18
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x4f8]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x58], 0xb08f8e8d
mov eax, 0xd825ce5d
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x27da31fb]
xor ecx, eax
mov edx, ecx
and edx, 0x2c
mov esi, ecx
and esi, 2
mov edi, esi
xor edi, 2
imul edi, edx
or edx, 2
imul edx, esi
xor ecx, 0x2e
add ecx, edi
add ecx, edx
inc cl
mov byte [esp + eax + 0x27da31fb], cl
inc eax
cmp eax, 0xd825ce61
jne 0x421100
mov eax, dword [esp + 0x58]
mov ecx, dword [0x44f6fc]
test ecx, ecx
je 0x421184
xor edx, edx
mov esi, dword [0x44f700]
cmp dword [esi + edx*8], 0x9abdb589
je 0x421160
inc edx
cmp ecx, edx
jne 0x421150
jmp 0x421184
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x421184
lea eax, [esp + 0x24]
push eax
push 0
push 0
push 5
push 4
push dword [0x44f704]
push ecx
call fcn.0043f170
add esp, 0x1c
mov dword [esp + 0x58], 0x77b68984
mov byte [esp + 0x5c], 0
mov ecx, 0xe1
mov edx, 0x1e
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edx + 0x3a]
lea esi, [ebx + ebx]
not esi
add esi, ebx
and esi, edx
and ebx, ecx
or ebx, esi
add bl, 0x6a
mov byte [esp + edx + 0x3a], bl
dec ecx
inc edx
cmp edx, 0x23
jne 0x4211a0
cmp eax, dword [esp + 0x58]
jne 0x421250
push dword [esp + 0x24]
call fcn.0043c430
add esp, 4
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x58], 0xb08f8e8d
mov eax, 0xd825ce5d
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x27da31fb]
xor edx, eax
mov esi, edx
and esi, 0x2c
mov edi, edx
and edi, 2
mov ebx, edi
xor ebx, 2
imul ebx, esi
or esi, 2
imul esi, edi
xor edx, 0x2e
add edx, ebx
add edx, esi
inc dl
mov byte [esp + eax + 0x27da31fb], dl
inc eax
cmp eax, 0xd825ce61
jne 0x4211f0
mov eax, dword [esp + 0x58]
mov edx, dword [0x44f6fc]
test edx, edx
je 0x421280
xor esi, esi
mov edi, dword [0x44f700]
cmp dword [edi + esi*8], 0x9abdb589
je 0x42125e
inc esi
cmp edx, esi
jne 0x421240
jmp 0x421280
xor ecx, ecx
xor edx, edx
xor esi, esi
mov ebx, dword [ebp + 0x14]
jmp 0x421801
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x421280
push 0
push ecx
push dword [esp + 0x24]
push 5
push 4
push dword [0x44f704]
push edx
call fcn.0043f170
add esp, 0x1c
test eax, eax
mov ebx, dword [ebp + 0x14]
js 0x4217d1
mov esi, dword [esp + 0x1c]
mov eax, dword [esi]
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
jmp 0x4212c1
mov ecx, ebx
call fcn.0043c900
mov eax, dword [esi]
test eax, eax
je 0x4217e9
mov ecx, dword [esi + eax + 0x3c]
add esi, eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [ecx + eax]
mov edi, dword [ebp + 8]
movzx edi, word [edi + eax]
test dx, dx
je 0x4212e8
add eax, 2
cmp dx, di
je 0x4212d0
cmp dx, di
jne 0x4212b7
mov eax, dword [esi + 0x44]
mov dword [ebx + 8], eax
mov eax, dword [esi + 0xdc]
mov dword [ebx + 0xc], eax
mov ecx, ebx
push 0x410
call fcn.0043c7a0
test eax, eax
js 0x4212b7
mov dword [esp + 0x20], 0
mov eax, dword [ebx]
mov dword [esp + 8], eax
mov dword [esp + 0x58], 0xb08f8e8d
mov eax, 0xd825ce5d
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x27da31fb]
xor edx, eax
mov edi, edx
and edi, 0x2c
mov ecx, edx
and ecx, 2
mov ebx, ecx
xor ebx, 2
imul ebx, edi
or edi, 2
imul edi, ecx
xor edx, 0x2e
add edx, ebx
add edx, edi
inc dl
mov byte [esp + eax + 0x27da31fb], dl
inc eax
cmp eax, 0xd825ce61
jne 0x421330
mov eax, dword [esp + 0x58]
mov edx, dword [0x44f6fc]
test edx, edx
je 0x4213c0
xor edi, edi
mov ebx, dword [0x44f700]
cmp dword [ebx + edi*8], 0xae6e2b0b
je 0x421390
inc edi
cmp edx, edi
jne 0x421380
jmp 0x4213c0
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je 0x4213c0
lea eax, [esp + 0x20]
push eax
push 0
push 0
push 0x2b
push dword [esp + 0x18]
push 5
push dword [0x44f704]
push edx
call fcn.0043f170
add esp, 0x20
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0x23e2e1e4
mov dword [esp + 0x5c], 0
xor ecx, ecx
mov ebx, dword [ebp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x58
xor dl, byte [esp + ecx + 0x58]
add dl, 0x48
mov byte [esp + ecx + 0x58], dl
inc ecx
cmp ecx, 8
jne 0x4213e0
cmp eax, dword [esp + 0x58]
jne 0x42178a
mov eax, dword [esp + 0x20]
add eax, 2
push eax
call fcn.0043c430
add esp, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
mov eax, dword [ebx]
mov dword [esp + 0x18], eax
mov dword [esp + 0x58], 0xb08f8e8d
mov eax, 0xd825ce5d
nop
nop
movzx ecx, byte [esp + eax + 0x27da31fb]
xor ecx, eax
mov edi, ecx
and edi, 0x2c
mov edx, ecx
and edx, 2
mov ebx, edx
xor ebx, 2
imul ebx, edi
or edi, 2
imul edi, edx
xor ecx, 0x2e
add ecx, ebx
add ecx, edi
inc cl
mov byte [esp + eax + 0x27da31fb], cl
inc eax
cmp eax, 0xd825ce61
jne 0x421430
mov eax, dword [esp + 0x58]
mov ecx, dword [0x44f6fc]
test ecx, ecx
je 0x4214c6
mov edx, dword [esp]
add edx, 2
xor edi, edi
mov ebx, dword [0x44f700]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xae6e2b0b
je 0x4214a0
inc edi
cmp ecx, edi
jne 0x421490
jmp 0x4214c6
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, eax
je 0x4214c6
push 0
push edx
push dword [esp + 0x10]
push 0x2b
push dword [esp + 0x28]
push 5
push dword [0x44f704]
push ecx
call fcn.0043f170
add esp, 0x20
test eax, eax
mov ebx, dword [ebp + 0x14]
js 0x42177e
mov ecx, dword [esp + 8]
movzx eax, word [ecx]
shr eax, 1
mov ecx, dword [ecx + 4]
xor edx, edx
nop
cmp eax, edx
je 0x4214fb
mov edi, dword [ebp + 0xc]
movzx edi, word [edi + edx*2]
cmp di, word [ecx + edx*2]
jne 0x42177e
inc edx
test di, di
jne 0x4214e0
mov ecx, ebx
call fcn.0043cd60
cmp eax, 2
jne 0x42177e
mov ecx, ebx
push 0
push 0x30
lea eax, [esp + 0x30]
push eax
push 0
call fcn.0043cbb0
test eax, eax
js 0x42177e
mov ecx, ebx
push 0
push 0
push 0x28
lea eax, [esp + 0x67c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x44]
call fcn.0043d080
test eax, eax
js 0x42177e
mov ecx, ebx
push 0
push 0
push 0x80
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x6a4]
push dword [esp + 0x6a4]
call fcn.0043d080
test eax, eax
js 0x42177e
movzx eax, word [esp + 0xca]
push eax
call fcn.0043c430
add esp, 4
mov edi, eax
movzx eax, word [esp + 0xca]
mov ecx, ebx
push 0
push 0
push eax
push edi
push dword [esp + 0xe4]
push dword [esp + 0xe4]
call fcn.0043d080
test eax, eax
js 0x421775
mov eax, edi
movzx edi, word [esp + 0x498]
mov dword [esp + 4], eax
mov dword [esp], eax
test di, di
je 0x421615
lea ecx, [esp + 0x498]
mov edx, dword [esp + 4]
mov eax, edx
mov dword [esp], edx
jmp 0x4215e8
movzx edi, word [ecx]
test di, di
je 0x421615
movzx ebx, word [eax]
test bx, bx
je 0x42176e
add eax, 2
add ecx, 2
mov edx, dword [esp]
add edx, 2
cmp bx, di
je 0x42160a
mov dword [esp], edx
mov eax, edx
je 0x4215e0
lea ecx, [esp + 0x498]
jmp 0x4215e0
cmp dword [esp], 0
je 0x42176e
mov ebx, dword [ebp + 0x14]
mov ecx, ebx
push 0
push 0
push 0x20
lea eax, [esp + 0x624]
push eax
push dword [esp + 0x69c]
push dword [esp + 0x69c]
call fcn.0043d080
test eax, eax
js 0x421771
mov eax, dword [esp + 0x688]
mov ecx, dword [esp + 0x68c]
add eax, 0x10
mov dword [esp], eax
adc ecx, 0
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x628]
mov edx, dword [esp + 0x62c]
mov dword [esp + 0x4fc], edx
mov dword [esp + 0x4f8], eax
jmp 0x4216b9
cmp cx, dx
je 0x4217a5
push edi
call fcn.0043c4c0
add esp, 4
mov eax, dword [esp + 0x4f8]
mov edx, dword [esp + 0x4fc]
mov ecx, edx
xor ecx, dword [esp + 0x18]
mov edi, eax
xor edi, dword [esp]
or edi, ecx
je 0x421771
mov ecx, ebx
push 0
push 0
push 0x68
lea edi, [esp + 0x504]
push edi
push edx
push eax
call fcn.0043d080
test eax, eax
js 0x421771
movzx eax, word [esp + 0x552]
push eax
call fcn.0043c430
add esp, 4
mov edi, eax
movzx eax, word [esp + 0x552]
mov ecx, ebx
push 0
push 0
push eax
push edi
push dword [esp + 0x56c]
push dword [esp + 0x56c]
call fcn.0043d080
test eax, eax
js 0x42168f
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp + 0x10]
movzx ecx, word [ecx + eax]
lea edx, [ecx - 0x41]
cmp dx, 0x1a
jae 0x42173c
mov edx, ecx
not edx
or edx, 0xffffffdf
add ecx, edx
add ecx, 0x21
movzx edx, word [edi + eax]
lea ebx, [edx - 0x41]
cmp bx, 0x1a
jae 0x421755
mov ebx, edx
not ebx
or ebx, 0xffffffdf
add edx, ebx
add edx, 0x21
mov ebx, dword [ebp + 0x14]
test cx, cx
je 0x421686
add eax, 2
cmp cx, dx
je 0x421720
jmp 0x421686
mov ebx, dword [ebp + 0x14]
mov edi, dword [esp + 4]
push edi
call fcn.0043c4c0
add esp, 4
push dword [esp + 8]
call fcn.0043c4c0
add esp, 4
mov eax, dword [esp + 0x14]
or eax, dword [esp + 0x10]
je 0x4212b0
cmp dword [esp + 0xc], 0
je 0x4212b0
jmp 0x4217e9
mov eax, dword [esp + 0x528]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x52c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x538]
mov dword [esp + 0xc], eax
push edi
call fcn.0043c4c0
add esp, 4
jmp 0x421771
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
push dword [esp + 0x1c]
call fcn.0043c4c0
add esp, 4
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 0x18]
mov dword [eax], edx
mov dword [eax + 4], esi
mov eax, dword [ebp + 0x1c]
mov dword [eax], ecx
mov ecx, ebx
call fcn.0043c8f0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret