Function at 0x420e30
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], 0x39e93bef
mov dword [esp + 0x5c], 0x25ba27a3
mov dword [esp + 0x60], 0x21b623b3
mov dword [esp + 0x64], 0x2db22fb7
mov dword [esp + 0x68], 0x29f92bab
mov dword [esp + 0x6c], 0x158d17b5
mov dword [esp + 0x70], 0x11c113ba
mov dword [esp + 0x74], 0x1d991f8c
mov dword [esp + 0x78], 0x19b11b8c
mov dword [esp + 0x7c], 0x59407db
mov dword [esp + 0x80], 0x19e03af
mov dword [esp + 0x84], 0xd9f0f99
mov dword [esp + 0x88], 0x99f0b92
mov dword [esp + 0x8c], 0xf565f7da
mov dword [esp + 0x90], 0xf164f365
mov dword [esp + 0x94], 0xfd6dff61
mov dword [esp + 0x98], 0xf948fb2e
mov dword [esp + 0x9c], 0xe57ae753
mov dword [esp + 0xa0], 0xe173e37d
mov dword [esp + 0xa4], 0xed7bef7e
mov dword [esp + 0xa8], 0xe941eb51
mov dword [esp + 0xac], 0xd54cd776
mov dword [esp + 0xb0], 0xd17fd343
mov dword [esp + 0xb4], 0xdddedf7b
mov word [esp + 0xb8], 0
lea eax, [esp + 0xb8]
mov dword [esp + 8], eax
mov esi, 0x2373cf4b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + esi - 0x2373cef3]
mov edx, ebx
and edx, esi
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0xfd
mul cl
mov ecx, eax
add cl, bl
mov eax, edx
shr al, 1
and al, 1
or dl, 2
mul dl
add al, al
sub cl, al
movzx eax, cl
add eax, esi
add al, 0x89
mov byte [esp + esi - 0x2373cef3], al
inc esi
cmp esi, 0x2373cfad
jne 0x420f50
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]
xor ecx, ecx
mov eax, dword [esp + 8]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x58], 0xd4d5cacb
mov byte [esp + 0x5c], 0
mov eax, 0x4e
mov ecx, 0xb1
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0xa]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0x7a
mov byte [esp + eax + 0xa], dl
inc eax
dec ecx
cmp eax, 0x53
jne 0x420fe0
mov eax, dword [esp + 0x58]
mov ecx, dword [0x44e478]
test ecx, ecx
je 0x421054
xor edx, edx
mov esi, dword [0x44e47c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9abdb589
je 0x421030
inc edx
cmp ecx, edx
jne 0x421020
jmp 0x421054
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x421054
lea eax, [esp + 0x20]
push eax
push 0
push 0
push 5
push 4
push dword [0x44e480]
push ecx
call fcn.0043fae0
add esp, 0x1c
mov dword [esp + 0x58], 0xa1e6e7f8
mov dword [esp + 0x5c], 0
mov ecx, 0x82963229
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x7d69ce2f]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0x33
mov byte [esp + ecx + 0x7d69ce2f], dl
inc ecx
cmp ecx, 0x82963231
jne 0x421070
cmp eax, dword [esp + 0x58]
jne 0x421120
push dword [esp + 0x20]
call fcn.0043cef0
add esp, 4
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x58], 0xd4d5cacb
mov byte [esp + 0x5c], 0
mov eax, 0x4e
mov edx, 0xb1
nop
nop
nop
movzx esi, byte [esp + eax + 0xa]
mov ebx, edx
xor ebx, eax
and ebx, esi
xor ebx, eax
add bl, 0x7a
mov byte [esp + eax + 0xa], bl
inc eax
dec edx
cmp eax, 0x53
jne 0x4210d0
mov eax, dword [esp + 0x58]
mov edx, dword [0x44e478]
test edx, edx
je 0x421150
xor esi, esi
mov edi, dword [0x44e47c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x9abdb589
je 0x42112e
inc esi
cmp edx, esi
jne 0x421110
jmp 0x421150
xor ecx, ecx
xor edx, edx
xor esi, esi
mov edi, dword [ebp + 0x14]
jmp 0x4216f3
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x421150
push 0
push ecx
push dword [esp + 0x1c]
push 5
push 4
push dword [0x44e480]
push edx
call fcn.0043fae0
add esp, 0x1c
test eax, eax
mov edi, dword [ebp + 0x14]
js 0x4216c3
mov esi, dword [esp + 0x14]
mov eax, dword [esi]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
mov ebx, dword [ebp + 8]
jmp 0x42118d
mov edi, dword [ebp + 0x14]
mov eax, dword [esi]
test eax, eax
je 0x4216db
mov ecx, dword [esi + eax + 0x3c]
add esi, eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [ecx + eax]
movzx edi, word [ebx + eax]
test dx, dx
je 0x4211b5
add eax, 2
cmp dx, di
je 0x4211a0
cmp dx, di
jne 0x421180
mov eax, dword [esi + 0x44]
mov edi, dword [ebp + 0x14]
mov dword [edi + 8], eax
mov eax, dword [esi + 0xdc]
mov dword [edi + 0xc], eax
mov ecx, edi
push 0x410
call fcn.0043d270
test eax, eax
js 0x421183
mov dword [esp + 0x1c], 0
mov ecx, dword [edi]
mov dword [esp + 0x58], 0xd4d5cacb
mov byte [esp + 0x5c], 0
mov eax, 0x4e
mov edx, 0xb1
nop
nop
nop
movzx edi, byte [esp + eax + 0xa]
mov ebx, edx
xor ebx, eax
and ebx, edi
xor ebx, eax
add bl, 0x7a
mov byte [esp + eax + 0xa], bl
inc eax
dec edx
cmp eax, 0x53
jne 0x421200
mov eax, dword [esp + 0x58]
mov edx, dword [0x44e478]
test edx, edx
je 0x421280
xor edi, edi
mov ebx, dword [0x44e47c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xae6e2b0b
je 0x421250
inc edi
cmp edx, edi
jne 0x421240
jmp 0x421280
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je 0x421280
lea eax, [esp + 0x1c]
push eax
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x44e480]
push edx
call fcn.0043fae0
add esp, 0x20
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0x77b68984
mov ecx, 0xe2
mov edx, 0x1e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, edx
or edi, 0xc1
add edi, ecx
mov ebx, ecx
neg ebx
or ebx, edx
and ebx, 0x3e
or ebx, edi
xor bl, byte [esp + edx + 0x3a]
xor bl, 0xc1
add bl, 0x6a
mov byte [esp + edx + 0x3a], bl
dec ecx
inc edx
cmp edx, 0x22
jne 0x4212a0
cmp eax, dword [esp + 0x58]
jne 0x421360
mov eax, dword [esp + 0x1c]
add eax, 2
push eax
call fcn.0043cef0
add esp, 4
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
mov dword [esp + 0x58], 0xd4d5cacb
mov byte [esp + 0x5c], 0
mov eax, 0x4e
mov edi, 0xb1
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 0xa]
mov ecx, edi
xor ecx, eax
and ecx, ebx
xor ecx, eax
add cl, 0x7a
mov byte [esp + eax + 0xa], cl
inc eax
dec edi
cmp eax, 0x53
jne 0x421310
mov eax, dword [esp + 0x58]
mov edi, dword [0x44e478]
test edi, edi
je 0x421391
add edx, 2
xor ebx, ebx
mov ecx, dword [0x44e47c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ecx + ebx*8], 0xae6e2b0b
je 0x42136b
inc ebx
cmp edi, ebx
jne 0x421350
jmp 0x421391
mov edi, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
jmp 0x421507
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, eax
je 0x421391
push 0
push edx
push dword [esp + 0x20]
push 0x2b
push dword [esp + 0x10]
push 5
push dword [0x44e480]
push ecx
call fcn.0043fae0
add esp, 0x20
test eax, eax
mov edi, dword [ebp + 0x14]
js 0x4214b5
mov ecx, dword [esp + 0x18]
movzx eax, word [ecx]
shr eax, 1
mov ecx, dword [ecx + 4]
xor edx, edx
nop
nop
nop
nop
nop
nop
cmp eax, edx
je 0x4213cb
movzx edi, word [ecx + edx*2]
mov ebx, dword [ebp + 0xc]
cmp word [ebx + edx*2], di
jne 0x4214f5
inc edx
test di, di
jne 0x4213b0
mov edi, dword [ebp + 0x14]
mov ecx, edi
call fcn.0043d8d0
cmp eax, 2
mov ebx, dword [ebp + 8]
jne 0x4214fb
mov ecx, edi
push 0
push 0x30
lea eax, [esp + 0x30]
push eax
push 0
call fcn.0043d6d0
test eax, eax
js 0x4214fb
mov ecx, edi
push 0
push 0
push 0x28
lea eax, [esp + 0x67c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x44]
call fcn.0043dc00
test eax, eax
js 0x4214fb
mov ecx, edi
push 0
push 0
push 0x80
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x6a4]
push dword [esp + 0x6a4]
call fcn.0043dc00
test eax, eax
js 0x4214fb
movzx eax, word [esp + 0xca]
push eax
call fcn.0043cef0
add esp, 4
movzx edx, word [esp + 0xca]
mov ecx, edi
push 0
push 0
push edx
mov dword [esp + 0x10], eax
push eax
push dword [esp + 0xe4]
push dword [esp + 0xe4]
call fcn.0043dc00
test eax, eax
js 0x421682
movzx edi, word [esp + 0x498]
mov eax, dword [esp + 4]
mov dword [esp], eax
test di, di
je 0x421528
lea ecx, [esp + 0x498]
mov edx, dword [esp + 4]
mov eax, edx
mov dword [esp], edx
jmp 0x4214c8
mov ebx, dword [ebp + 8]
jmp 0x4214fb
movzx edi, word [ecx]
test di, di
je 0x421528
movzx ebx, word [eax]
test bx, bx
je 0x42167c
add eax, 2
add ecx, 2
mov edx, dword [esp]
add edx, 2
cmp bx, di
je 0x4214ea
mov dword [esp], edx
mov eax, edx
je 0x4214c0
lea ecx, [esp + 0x498]
jmp 0x4214c0
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0x14]
push dword [esp + 0x18]
call fcn.0043cf50
add esp, 4
mov eax, dword [esp + 8]
or eax, dword [esp + 0x10]
je 0x42151c
cmp dword [esp + 0xc], 0
jne 0x4216db
mov ecx, edi
call fcn.0043d3f0
jmp 0x421183
cmp dword [esp], 0
je 0x42167c
mov edi, dword [ebp + 0x14]
mov ecx, edi
push 0
push 0
push 0x20
lea eax, [esp + 0x624]
push eax
push dword [esp + 0x69c]
push dword [esp + 0x69c]
call fcn.0043dc00
test eax, eax
js 0x42167f
mov eax, dword [esp + 0x688]
mov ecx, dword [esp + 0x68c]
add eax, 0x10
mov dword [esp], eax
adc ecx, 0
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x628]
mov edx, dword [esp + 0x62c]
mov dword [esp + 0x4fc], edx
mov dword [esp + 0x4f8], eax
mov ebx, dword [ebp + 8]
jmp 0x4215d2
cmp cx, dx
je 0x421694
push edi
call fcn.0043cf50
add esp, 4
mov eax, dword [esp + 0x4f8]
mov edx, dword [esp + 0x4fc]
mov ecx, edx
xor ecx, dword [esp + 0x24]
mov edi, eax
xor edi, dword [esp]
or edi, ecx
mov edi, dword [ebp + 0x14]
je 0x421682
mov ecx, edi
push 0
push 0
push 0x68
lea edi, [esp + 0x504]
push edi
push edx
push eax
call fcn.0043dc00
test eax, eax
js 0x4216be
movzx eax, word [esp + 0x552]
push eax
call fcn.0043cef0
add esp, 4
mov edi, eax
movzx eax, word [esp + 0x552]
mov ecx, dword [ebp + 0x14]
push 0
push 0
push eax
push edi
push dword [esp + 0x56c]
push dword [esp + 0x56c]
call fcn.0043dc00
test eax, eax
js 0x4215a5
xor eax, eax
nop
nop
nop
nop
nop
nop
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 0x421653
or ecx, 0x20
movzx edx, word [edi + eax]
lea ebx, [edx - 0x41]
cmp bx, 0x1a
jae 0x421663
or edx, 0x20
test cx, cx
mov ebx, dword [ebp + 8]
je 0x42159c
add eax, 2
cmp cx, dx
je 0x421640
jmp 0x42159c
mov edi, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 4]
push eax
call fcn.0043cf50
add esp, 4
jmp 0x4214fb
mov eax, dword [esp + 0x528]
mov dword [esp + 8], 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.0043cf50
add esp, 4
mov edi, dword [ebp + 0x14]
jmp 0x421682
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
push dword [esp + 0x14]
call fcn.0043cf50
add esp, 4
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
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, edi
call fcn.0043d3e0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret