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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xa8]
mov ecx, dword [eax + 4]
mov eax, 0xfffffffe
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x425050
mov ecx, 0xfffffffe
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x425060
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
jns 0x425080
mov eax, 0xffffffff
jmp 0x425089
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.0040c590
add esp, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], 0xf149ff52
mov dword [esp + 0x54], 0xf555f345
mov dword [esp + 0x58], 0xc9b3f746
mov dword [esp + 0x5c], 0xcd74cb79
mov dword [esp + 0x60], 0xc169cf78
mov dword [esp + 0x64], 0xc576c348
mov dword [esp + 0x68], 0xd962c79f
mov dword [esp + 0x6c], 0xddaedb97
mov dword [esp + 0x70], 0xd195dfae
mov dword [esp + 0x74], 0xd599d3a4
mov dword [esp + 0x78], 0x299fd7a2
mov dword [esp + 0x7c], 0x2d612b5a
mov dword [esp + 0x80], 0x21822f5b
mov dword [esp + 0x84], 0x2586239b
mov dword [esp + 0x88], 0x39262786
mov word [esp + 0x8c], 0
mov eax, 0x521e5dd5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x521e5d85]
xor ecx, eax
mov edx, ecx
xor edx, 0x29
mov esi, ecx
or esi, 0x56
and esi, edx
xor ecx, 0xd6
lea ecx, [ecx + esi*2]
inc cl
mov byte [esp + eax - 0x521e5d85], cl
inc eax
cmp eax, 0x521e5e13
jne 0x425130
mov dword [esp], 0xe16be700
mov dword [esp + 4], 0xfd13e36c
mov dword [esp + 8], 0xf91dff0e
mov dword [esp + 0xc], 0xf505fb01
mov dword [esp + 0x10], 0xf10af710
mov dword [esp + 0x14], 0x8d0cf30f
mov dword [esp + 0x18], 0x89018f6f
mov dword [esp + 0x1c], 0x85068b7c
mov dword [esp + 0x20], 0x81718760
mov dword [esp + 0x24], 0x9d088371
mov dword [esp + 0x28], 0x99619fab
mov dword [esp + 0x2c], 0x95169b10
mov dword [esp + 0x30], 0x9160976b
mov dword [esp + 0x34], 0xad69931d
mov dword [esp + 0x38], 0xa958af5d
mov dword [esp + 0x3c], 0xa59fab9d
mov dword [esp + 0x40], 0xa1a6a791
mov byte [esp + 0x46], 0
mov word [esp + 0x44], 0
mov edi, 0x940e6429
mov ebp, 0x940e642a
mov esi, 0x6bf19bd6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + edi + 0x6bf19bd7]
mov dword [esp + 0x4c], edx
lea eax, [esi - 0x40000000]
and eax, 0x284180f1
mov ecx, edi
and ecx, 0x9006600e
or ecx, eax
xor ecx, edx
xor ecx, 0xd3b67b0e
or ecx, esi
lea ebx, [edi + ecx]
inc ebx
mov eax, ebx
or al, 0xfd
inc al
mov edx, ebx
and dl, 0xfd
mul dl
mov edx, eax
add dl, byte [esp + 0x4c]
add ecx, ebp
shr cl, 1
and cl, 1
or bl, 2
mov eax, ecx
mul bl
add al, al
sub dl, al
movzx eax, dl
add eax, edi
add al, 0x33
mov byte [esp + edi + 0x6bf19bd7], al
inc edi
inc ebp
dec esi
cmp edi, 0x940e6470
jne 0x425210
mov esi, dword [esp + 0xac]
mov ecx, dword [esi + 4]
movzx edx, word [ecx]
mov ebp, dword [esp + 0x48]
mov eax, ebp
test dx, dx
je 0x4252b1
add ecx, 2
mov eax, ebp
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4252a0
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
je 0x4252e1
lea edx, [esp + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4252d0
mov word [eax], 0
mov edx, dword [esp + 0xa8]
movzx ecx, word [edx]
test cx, cx
je 0x425311
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425300
mov word [eax], 0
movzx ecx, word [esp + 0x50]
test cx, cx
je 0x425341
lea edx, [esp + 0x52]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425330
mov word [eax], 0
mov eax, dword [esp + 0xb0]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x425360
mov edx, dword [esi]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x425380
mov esi, dword [esi + 8]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + edx + 2], 0
lea edx, [edx + 2]
jne 0x4253a0
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
test eax, eax
jns 0x4253c4
mov eax, 0xffffffff
jmp 0x4253cd
add ecx, edx
lea eax, [ecx*2 + 0x16]
push eax
call fcn.0040c590
add esp, 4
mov edi, eax
mov dword [esp], 0x23832177
mov dword [esp + 4], 0x279a2598
mov dword [esp + 8], 0x3b8e399d
mov dword [esp + 0xc], 0x3f413d8f
mov word [esp + 0x10], 0x3130
mov dword [esp + 0x12], 0
mov word [esp + 0x16], 0
mov eax, 0x34548888
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x34548888]
lea ecx, [eax - 0x80000000]
xor edx, 0x706c5c49
mov esi, eax
and esi, 0x30440809
or esi, 0x383a234
and ecx, 0x841080b6
xor ecx, esi
xor ecx, 0x73effe7d
mov esi, edx
and esi, ecx
add ecx, edx
add esi, esi
sub ecx, esi
add cl, 0x58
mov byte [esp + eax - 0x34548888], cl
inc eax
cmp eax, 0x345488a0
jne 0x425420
movzx ecx, word [esp]
mov eax, edi
test cx, cx
je 0x425491
lea edx, [esp + 2]
mov eax, edi
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425480
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
mov esi, dword [esp + 0xac]
je 0x4254c1
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x4254b0
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esi]
movzx edx, word [ecx]
test dx, dx
je 0x4254f1
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4254e0
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esi + 8]
movzx edx, word [ecx]
test dx, dx
je 0x425521
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x425510
mov word [eax], 0
mov dword [esp], 0x4342416a
xor eax, eax
nop
mov ecx, eax
add cl, 0x90
xor cl, byte [esp + eax]
add cl, 0x30
mov byte [esp + eax], cl
inc eax
cmp eax, 4
jne 0x425530
mov eax, esp
push 0
push 1
push 0
push eax
push ebp
push edi
push dword [esp + 0xbc]
call fcn.004257f0
add esp, 0x1c
mov ebx, eax
jmp dword [0x44bf74]