Function at 0x421b40
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], 0xc111c713
mov dword [esp + 0x5c], 0xcd5ec35f
mov dword [esp + 0x60], 0xc95acf67
mov dword [esp + 0x64], 0xb556cb63
mov dword [esp + 0x68], 0xb161b72f
mov dword [esp + 0x6c], 0xbd2db32d
mov dword [esp + 0x70], 0xb969bf1e
mov dword [esp + 0x74], 0xa521bb24
mov dword [esp + 0x78], 0xa109a734
mov dword [esp + 0x7c], 0xad34a367
mov dword [esp + 0x80], 0xa932af03
mov dword [esp + 0x84], 0x953bab31
mov dword [esp + 0x88], 0x91039706
mov dword [esp + 0x8c], 0x9d059346
mov dword [esp + 0x90], 0x99349f0d
mov dword [esp + 0x94], 0x850d9b09
mov dword [esp + 0x98], 0x81308752
mov dword [esp + 0x9c], 0x8d1e832f
mov dword [esp + 0xa0], 0x891f8f15
mov dword [esp + 0xa4], 0x751f8b1a
mov dword [esp + 0xa8], 0x71d977c9
mov dword [esp + 0xac], 0x7dec73e2
mov dword [esp + 0xb0], 0x79d37fd7
mov dword [esp + 0xb4], 0x657a7bd7
mov eax, 0x37609b3a
nop
nop
movzx ecx, byte [esp + eax - 0x37609ae2]
lea edx, [eax - 0x37609b09]
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax - 0x37609ae2], cl
inc eax
cmp eax, 0x37609b9a
jne 0x421c40
lea edi, [esp + 0x498]
lea eax, [esp + 0x58]
mov ecx, 0x18
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x4f8]
lea eax, [esp + 0xb8]
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], 0x34353a3b
mov eax, 0x55dccef6
mov ecx, 0xabb99dec
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 0x6c
mov edx, eax
xor edx, 0xb6
add edx, esi
add dl, 0xa
xor dl, byte [esp + eax - 0x55dcce9e]
add dl, 0x72
mov byte [esp + eax - 0x55dcce9e], dl
inc eax
add ecx, 2
cmp eax, 0x55dccefa
jne 0x421cc0
mov eax, dword [esp + 0x58]
mov ecx, dword [0x4504d8]
test ecx, ecx
je 0x421d44
xor edx, edx
mov esi, dword [0x4504dc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9abdb589
je 0x421d20
inc edx
cmp ecx, edx
jne 0x421d10
jmp 0x421d44
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x421d44
lea eax, [esp + 0x24]
push eax
push 0
push 0
push 5
push 4
push dword [0x4504e0]
push ecx
call fcn.00440d90
add esp, 0x1c
mov dword [esp + 0x58], 0x41868788
mov dword [esp + 0x5c], 0
mov ecx, 0x8d9a0d21
mov edx, 0xde
nop
nop
movzx esi, byte [esp + ecx + 0x7265f337]
mov edi, edx
xor edi, ecx
and edi, esi
xor edi, ecx
mov esi, edi
and esi, 1
xor edi, 1
lea ebx, [edi + esi*2]
add bl, 0x5a
mov byte [esp + ecx + 0x7265f337], bl
inc ecx
dec edx
cmp ecx, 0x8d9a0d29
jne 0x421d60
cmp eax, dword [esp + 0x58]
jne 0x421e30
push dword [esp + 0x24]
call fcn.0043dbb0
add esp, 4
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x58], 0x34353a3b
mov esi, 0x55dccef6
mov edx, 0xabb99dec
mov ebx, dword [ebp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, edx
and edi, 0x6c
mov eax, esi
xor eax, 0xb6
add eax, edi
add al, 0xa
xor al, byte [esp + esi - 0x55dcce9e]
add al, 0x72
mov byte [esp + esi - 0x55dcce9e], al
inc esi
add edx, 2
cmp esi, 0x55dccefa
jne 0x421dd0
mov eax, dword [esp + 0x58]
mov edx, dword [0x4504d8]
test edx, edx
je 0x421e60
xor esi, esi
mov edi, dword [0x4504dc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x9abdb589
je 0x421e3e
inc esi
cmp edx, esi
jne 0x421e20
jmp 0x421e60
xor ecx, ecx
xor edx, edx
xor esi, esi
mov ebx, dword [ebp + 0x14]
jmp 0x4223ca
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x421e60
push 0
push ecx
push dword [esp + 0x24]
push 5
push 4
push dword [0x4504e0]
push edx
call fcn.00440d90
add esp, 0x1c
test eax, eax
js 0x42239a
mov esi, dword [esp + 0x1c]
mov eax, dword [esi]
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
jmp 0x421ea1
mov ecx, ebx
call fcn.0043e140
mov eax, dword [esi]
test eax, eax
je 0x4223b2
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 0x421ec8
add eax, 2
cmp dx, di
je 0x421eb0
cmp dx, di
jne 0x421e97
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.0043dfb0
test eax, eax
js 0x421e97
mov dword [esp + 0x20], 0
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov dword [esp + 0x58], 0x34353a3b
mov eax, 0x55dccef6
mov edx, 0xabb99dec
nop
nop
nop
nop
mov edi, edx
and edi, 0x6c
mov ecx, eax
xor ecx, 0xb6
add ecx, edi
add cl, 0xa
xor cl, byte [esp + eax - 0x55dcce9e]
add cl, 0x72
mov byte [esp + eax - 0x55dcce9e], cl
inc eax
add edx, 2
cmp eax, 0x55dccefa
jne 0x421f10
mov eax, dword [esp + 0x58]
mov edx, dword [0x4504d8]
test edx, edx
je 0x421fa0
xor edi, edi
mov ecx, dword [0x4504dc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ecx + edi*8], 0xae6e2b0b
je 0x421f70
inc edi
cmp edx, edi
jne 0x421f60
jmp 0x421fa0
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, eax
je 0x421fa0
lea eax, [esp + 0x20]
push eax
push 0
push 0
push 0x2b
push dword [esp + 0x1c]
push 5
push dword [0x4504e0]
push ecx
call fcn.00440d90
add esp, 0x20
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0xd7969964
mov dword [esp + 0x5c], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 2
xor edi, 0x9a
mov edx, ecx
and edx, 5
sub edx, edi
xor dl, byte [esp + ecx + 0x58]
add dl, 2
mov byte [esp + ecx + 0x58], dl
inc ecx
cmp ecx, 8
jne 0x421fc0
cmp eax, dword [esp + 0x58]
jne 0x42237f
mov eax, dword [esp + 0x20]
add eax, 2
push eax
call fcn.0043dbb0
add esp, 4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
mov dword [esp + 0x58], 0x34353a3b
mov eax, 0x55dccef6
mov edi, 0xabb99dec
mov edx, edi
and edx, 0x6c
mov ecx, eax
xor ecx, 0xb6
add ecx, edx
add cl, 0xa
xor cl, byte [esp + eax - 0x55dcce9e]
add cl, 0x72
mov byte [esp + eax - 0x55dcce9e], cl
inc eax
add edi, 2
cmp eax, 0x55dccefa
jne 0x422020
mov eax, dword [esp + 0x58]
mov edi, dword [0x4504d8]
test edi, edi
je 0x4220a9
add dword [esp + 4], 2
xor ecx, ecx
mov edx, dword [0x4504dc]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0xae6e2b0b
je 0x422080
inc ecx
cmp edi, ecx
jne 0x422070
jmp 0x4220a9
mov ecx, dword [edx + ecx*8 + 4]
cmp ecx, eax
je 0x4220a9
push 0
push dword [esp + 8]
push dword [esp + 0x14]
push 0x2b
push dword [esp + 0x10]
push 5
push dword [0x4504e0]
push ecx
call fcn.00440d90
add esp, 0x20
test eax, eax
js 0x422373
mov ecx, dword [esp + 0xc]
movzx eax, word [ecx]
shr eax, 1
mov ecx, dword [ecx + 4]
xor edx, edx
nop
cmp eax, edx
je 0x4220db
mov edi, dword [ebp + 0xc]
movzx edi, word [edi + edx*2]
cmp di, word [ecx + edx*2]
jne 0x422373
inc edx
test di, di
jne 0x4220c0
mov ecx, ebx
call fcn.0043e700
cmp eax, 2
jne 0x422373
mov ecx, ebx
push 0
push 0x30
lea eax, [esp + 0x30]
push eax
push 0
call fcn.0043e4d0
test eax, eax
js 0x422373
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.0043ea60
test eax, eax
js 0x422373
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.0043ea60
test eax, eax
js 0x422373
movzx eax, word [esp + 0xca]
push eax
call fcn.0043dbb0
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.0043ea60
test eax, eax
js 0x42236a
mov eax, edi
movzx edi, word [esp + 0x498]
mov dword [esp + 8], eax
mov dword [esp], eax
test di, di
je 0x4221fd
lea edx, [esp + 0x498]
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [esp], eax
jmp 0x4221c8
movzx edi, word [edx]
test di, di
je 0x4221fd
movzx eax, word [ecx]
test ax, ax
je 0x422366
add ecx, 2
add edx, 2
mov dword [esp + 4], edx
mov edx, dword [esp]
add edx, 2
cmp ax, di
je 0x4221ee
mov dword [esp], edx
mov ecx, edx
mov edx, dword [esp + 4]
je 0x4221c0
lea edx, [esp + 0x498]
jmp 0x4221c0
cmp dword [esp], 0
je 0x422366
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.0043ea60
test eax, eax
js 0x422366
mov eax, dword [esp + 0x688]
mov ecx, dword [esp + 0x68c]
add eax, 0x10
mov dword [esp + 4], eax
adc ecx, 0
mov dword [esp], ecx
mov eax, dword [esp + 0x628]
mov edx, dword [esp + 0x62c]
mov dword [esp + 0x4fc], edx
mov dword [esp + 0x4f8], eax
jmp 0x42229e
cmp cx, dx
je 0x42233c
push edi
call fcn.0043dc40
add esp, 4
mov eax, dword [esp + 0x4f8]
mov edx, dword [esp + 0x4fc]
mov ecx, edx
xor ecx, dword [esp]
mov edi, eax
xor edi, dword [esp + 4]
or edi, ecx
je 0x422366
mov ecx, ebx
push 0
push 0
push 0x68
lea edi, [esp + 0x504]
push edi
push edx
push eax
call fcn.0043ea60
test eax, eax
js 0x422366
movzx eax, word [esp + 0x552]
push eax
call fcn.0043dbb0
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.0043ea60
test eax, eax
js 0x422274
xor eax, eax
nop
nop
nop
mov ecx, dword [ebp + 0x10]
movzx ecx, word [ecx + eax]
lea edx, [ecx - 0x41]
cmp dx, 0x1a
jae 0x422313
or ecx, 0x20
movzx edx, word [edi + eax]
lea ebx, [edx - 0x41]
cmp bx, 0x1a
jae 0x422323
or edx, 0x20
mov ebx, dword [ebp + 0x14]
test cx, cx
je 0x42226b
add eax, 2
cmp cx, dx
je 0x422300
jmp 0x42226b
mov eax, dword [esp + 0x528]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x52c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x538]
mov dword [esp + 0x10], eax
push edi
call fcn.0043dc40
add esp, 4
mov edi, dword [esp + 8]
push edi
call fcn.0043dc40
add esp, 4
push dword [esp + 0xc]
call fcn.0043dc40
add esp, 4
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0x14]
je 0x421e90
cmp dword [esp + 0x10], 0
je 0x421e90
jmp 0x4223b2
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
push dword [esp + 0x1c]
call fcn.0043dc40
add esp, 4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
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.0043e130
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret