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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf4
mov dword [esp + 8], 0xd717c925
mov dword [esp + 0xc], 0xd362d564
mov dword [esp + 0x10], 0xdf7fd11c
mov dword [esp + 0x14], 0xdb7bdd60
mov dword [esp + 0x18], 0xa7a6d935
lea eax, [esp + 0x1c]
mov word [esp + 0x1c], 0
mov byte [esp + 0x1e], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xae
xor dl, byte [esp + ecx + 8]
add dl, 0x9a
mov byte [esp + ecx + 8], dl
inc ecx
cmp ecx, 0x17
jne 0x424700
lea esi, [esp + 0xae]
lea ebx, [esp + 8]
mov edx, ebx
mov edi, esi
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xc2]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x5c]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x44a4a8]
mov ebp, dword [esp + 0x5c]
test ebp, ebp
jns 0x424761
mov eax, 0xffffffff
jmp 0x424768
lea eax, [ebp*2]
push eax
call fcn.004086b0
add esp, 4
push edi
push ebp
mov dword [esp + 0x4c], eax
push eax
push 9
push esi
push 0
call dword [0x44a4a8]
mov dword [esp + 8], 0x59e55b00
mov dword [esp + 0xc], 0x5dfb5fed
mov dword [esp + 0x10], 0x51e453ed
mov dword [esp + 0x14], 0x555657f4
mov word [esp + 0x18], 0
mov eax, 0x90
nop
movzx ecx, byte [ebx]
not ecx
mov edx, eax
or edx, ecx
lea esi, [edx + edx]
not esi
add esi, edx
and ecx, eax
or ecx, esi
mov dl, 0xd4
sub dl, cl
mov byte [ebx], dl
inc ebx
dec eax
cmp eax, 0x7e
jne 0x4247b0
lea ebp, [esp + 0x9e]
lea eax, [esp + 8]
mov ecx, 4
mov edi, ebp
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xae]
lea eax, [esp + 0x18]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 8], 0x178f1964
mov dword [esp + 0xc], 0x138d159b
mov dword [esp + 0x10], 0xf801183
mov dword [esp + 0x14], 0xb750d90
mov dword [esp + 0x18], 0x7940969
mov dword [esp + 0x1c], 0x38c0565
mov dword [esp + 0x20], 0x3f3e0189
lea esi, [esp + 0x24]
mov byte [esp + 0x24], 0
mov eax, 0xb1988b86
nop
movzx ecx, byte [esp + eax + 0x4e677482]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x62
mov byte [esp + eax + 0x4e677482], cl
inc eax
cmp eax, 0xb1988ba3
jne 0x424840
lea edx, [esp + 0xd8]
lea eax, [esp + 8]
mov edi, edx
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xf4]
xor eax, eax
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 8], 0x71a50f48
mov dword [esp + 0xc], 0x75d773e5
mov dword [esp + 0x10], 0x79e477e5
mov dword [esp + 0x14], 0x7dca7bdc
mov dword [esp + 0x18], 0x613c7fc8
lea ebx, [esp + 0x1c]
mov word [esp + 0x1c], 0x6360
mov dword [esp + 0x1e], 0
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x3d
xor cl, byte [esp + eax + 8]
add cl, 0xcf
mov byte [esp + eax + 8], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x1a
jb case.default.0x42494d
lea esi, [esp + 0xc2]
lea eax, [esp + 8]
mov ecx, 5
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xd6]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], esi
mov eax, dword [esp + 0x44]
add eax, 2
mov dword [esp + 0x68], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x4c], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x44512c]
jmp dword [0x44513c]
jmp dword [0x445144]
push dword [esp + 0x44]
call fcn.004086c0
add esp, 4
jmp dword [0x4451e0]
mov dword [esp + 0x70], ecx
mov esi, dword [esp + ecx + 0x90]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x4249e0
mov dword [esp + 0x6c], eax
mov edx, eax
sar edx, 1
mov eax, dword [esp + 0x5c]
lea ecx, [edx + eax]
mov dword [esp + 0x50], edx
add edx, eax
add edx, 0xd
lea eax, [ecx*2 + 0x1a]
test edx, edx
jns 0x424a13
mov eax, 0xffffffff
mov dword [esp + 0x40], esi
push eax
call fcn.004086b0
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x44]
movzx ecx, word [eax]
mov eax, esi
test cx, cx
je 0x424a51
mov edx, dword [esp + 0x68]
mov eax, esi
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 0x424a40
mov dword [esp + 0x74], esi
mov dword [esp], eax
mov word [eax], 0x5c
mov dword [esp + 8], 0x93269134
mov dword [esp + 0xc], 0x9f3d9d0b
mov dword [esp + 0x10], 0x9b0e9939
mov dword [esp + 0x14], 0x87358564
mov dword [esp + 0x18], 0x8323811c
mov dword [esp + 0x1c], 0x8f238d10
mov word [esp + 0x20], 0x8988
lea edi, [esp + 8]
mov byte [edi + 0x1e], 0
mov dword [edi + 0x1a], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [edi]
mov ebx, ecx
and ebx, 0x82796038
mov ebp, edx
xor ebp, 0x3ec34fe3
sub ebp, ebx
lea eax, [ebp + 1]
and eax, esi
lea ebx, [esi + ebp]
inc ebx
add eax, eax
sub ebx, eax
add bl, 0x8c
mov byte [edi], bl
inc edi
dec edx
add ecx, 0xfffffffe
cmp edx, 0xffffffe1
jne 0x424ab0
mov eax, dword [esp]
add eax, 2
mov ebx, dword [esp + 0x40]
movzx ecx, word [ebx]
test cx, cx
je 0x424b11
lea edx, [ebx + 2]
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 0x424b00
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
mov esi, dword [esp + 0x74]
je 0x424b41
lea edx, [esp + 0xa]
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 0x424b30
mov word [eax], 0
lea eax, [esp + 0x58]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.0043d410
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44514c]
xor eax, eax
jmp dword [0x4451bc]
lea eax, [esp + 0x80]
push 0
push eax
push dword [esp + 0x60]
call fcn.0043d7c0
add esp, 0xc
not eax
shr eax, 0x1f
xor edi, edi
mov dword [esp], 0
jmp dword [eax*4 + 0x445154]
mov esi, dword [esp + 0x80]
lea eax, [esi + 1]
push eax
call fcn.004086b0
add esp, 4
mov ebx, eax
push 0
push esi
push eax
push dword [esp + 0x64]
call fcn.0043d8c0
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esp], 0
jmp dword [eax*4 + 0x44515c]
mov eax, dword [esp + 0x80]
mov byte [ebx + eax], 0
push ebx
call fcn.00401000
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp], 0
jmp dword [ecx*4 + 0x445164]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], eax
push eax
call fcn.00401b20
add esp, 4
mov dword [esp + 8], 0xd121f
mov dword [esp + 0xc], 0x1316ec16
mov dword [esp + 0x10], 0x18041c46
mov dword [esp + 0x14], 0xb0ef40e
mov dword [esp + 0x18], 0x81d1515
mov word [esp + 0x1c], 0xfc11
mov byte [esp + 0x1e], 0x76
mov word [esp + 0x1f], 0
xor edi, edi
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + edi + 8]
lea ecx, [edi - 0x2aa21818]
lea ebx, [edx + edx]
not ebx
add ebx, edx
lea ebp, [edi*2 - 0x55443030]
not ebp
lea esi, [edi + ebp]
add ebp, edi
add ebp, 0xe8
or ebp, ebx
mov ebx, 0x17
sub ebx, esi
and ebx, edx
mov esi, 0x2a21817
sub esi, edi
and esi, 0x2a006c7
and ecx, 0xc11d2938
or ecx, esi
xor ecx, edx
xor ecx, 0xc7
lea esi, [edi + 0xe8]
and esi, edx
or esi, ecx
not ebx
and ebx, esi
and ebx, ebp
add bl, 0x78
mov byte [esp + edi + 8], bl
mov ecx, 0x10
sub ecx, edi
add edi, 0x6f
and ecx, 0x6e
and edi, 0x91
sub edi, ecx
cmp edi, 0x19
jb 0x424c70
lea ecx, [esp + 8]
push ecx
push eax
call fcn.00401f10
add esp, 8
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x424d10
mov dword [esp + 4], ecx
mov edx, dword [esp + 4]
and edx, 0xfffffffc
mov ecx, dword [esp + 4]
and ecx, 3
mov esi, dword [esp + 4]
or esi, 3
imul esi, ecx
xor ecx, 3
imul ecx, edx
mov edx, dword [esp + 4]
add esi, ecx
shr esi, 2
movzx ecx, byte [eax + edx - 1]
cmp ecx, 0x3d
mov edi, 0
je 0x424d59
cmp ecx, 0x2e
jne 0x424d5a
dec esi
movzx ecx, byte [eax + edx - 2]
cmp ecx, 0x3d
mov dword [esp + 0x54], eax
je 0x424d6d
cmp ecx, 0x2e
jne 0x424d6e
dec esi
mov dword [esp + 0x84], esi
lea eax, [esi + 1]
push eax
call fcn.004086b0
add esp, 4
mov dword [esp + 0x48], eax
cmp dword [esp + 4], 0
je 0x424e96
xor ebx, ebx
mov ebp, 2
jmp 0x424db7
mov edx, dword [esp + 4]
mov ebx, dword [esp]
lea eax, [ebp + 4]
add ebp, 2
cmp ebp, edx
mov ebp, eax
jae 0x424e96
mov dword [esp + 0x3c], ebx
mov esi, dword [esp + 0x54]
movzx eax, byte [esi + ebp - 2]
push eax
call fcn.00419d50
add esp, 4
mov bh, al
movzx eax, byte [esi + ebp - 1]
push eax
call fcn.00419d50
mov edx, dword [esp + 8]
add esp, 4
shl bh, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, bh
mov ebx, dword [esp + 0x3c]
mov ecx, ebx
and ecx, 1
mov esi, ebx
xor esi, 1
lea ecx, [esi + ecx*2]
mov dword [esp], ecx
mov ecx, dword [esp + 0x48]
mov byte [ecx + ebx], ah
cmp ebp, edx
jae 0x424da4
mov byte [esp + 0x3c], al
mov eax, dword [esp + 0x54]
movzx eax, byte [eax + ebp]
push eax
call fcn.00419d50
add esp, 4
cmp al, 0x40
je 0x424da0
movzx edx, byte [esp + 0x3c]
shl dl, 4
mov ecx, eax
shr cl, 2
and cl, 0xf
or cl, dl
and esi, 1
mov ebx, dword [esp]
mov edx, ebx
xor edx, 1
lea esi, [edx + esi*2]
mov edx, dword [esp + 0x48]
mov byte [edx + ebx], cl
mov ebx, edx
lea ecx, [ebp + 1]
mov edx, dword [esp + 4]
cmp ecx, edx
jae 0x424e8f
mov byte [esp], al
mov eax, dword [esp + 0x54]
movzx eax, byte [eax + ebp + 1]
push eax
call fcn.00419d50
add esp, 4
cmp al, 0x40
je 0x424e84
movzx ecx, byte [esp]
shl cl, 6
add al, cl
mov byte [ebx + esi], al
inc esi
mov ebx, esi
mov edx, dword [esp + 4]
jmp 0x424da7
mov ebx, esi
jmp 0x424da7
mov eax, dword [esp + 0x84]
add eax, 0xfffffffb
mov dword [esp + 0x88], eax
mov esi, dword [esp + 0x48]
mov eax, esi
add eax, 5
mov dword [esp + 0x8c], eax
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
push 0x14e20a34
push dword [0x44a4b8]
call fcn.0043ca10
add esp, 8
lea ecx, [esp + 0x78]
lea edx, [esp + 0x88]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44516c]
mov dword [esp], 0
mov eax, dword [case.0x42494d.22]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x60]
jmp case.0x42494d.20
mov eax, dword [esp + 0x6c]
add eax, 0x10
cmp dword [esp + 0x50], 0xfffffff8
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x60]
jge 0x424f39
mov eax, 0xffffffff
push eax
call fcn.004086b0
add esp, 4
mov edx, eax
mov dword [esp + 8], 0x29ce2bf5
mov dword [esp + 0xc], 0x2dfc2fb8
mov dword [esp + 0x10], 0xd14ad3b8
mov dword [esp + 0x14], 0xd5d6d744
lea eax, [esp + 0x18]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xf7
xor cl, byte [esp + eax + 8]
add cl, 0x2d
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 0x13
jne 0x424f80
movzx ecx, word [esi]
mov dword [esp + 0x3c], edx
mov eax, edx
test cx, cx
je 0x424fc1
lea edx, [esi + 2]
mov eax, dword [esp + 0x3c]
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424fb0
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x424ff1
lea edx, [esp + 0xa]
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 0x424fe0
mov word [eax], 0
mov ecx, dword [esp + 0x108]
push dword [esp + 0x78]
push dword [esp + 0x80]
mov esi, dword [esp + 0x44]
push esi
call fcn.00409570
mov dword [esp], eax
jmp dword [0x445174]
push esi
call fcn.004086c0
add esp, 4
push 0xbe5098bb
push dword [0x44a4a0]
call fcn.0043ca10
add esp, 8
push dword [esp + 0x7c]
call eax
mov eax, dword [case.0x42494d.22]
mov esi, dword [esp + 0x48]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x44518c]
push esi
call fcn.004086c0
add esp, 4
jmp dword [0x445194]
jmp dword [0x445194]
push ebp
call fcn.00402120
add esp, 4
jmp dword [0x4451a0]
jmp dword [0x4451a4]
mov eax, dword [esp + 0x58]
mov dword [esp + 8], 0x94959697
mov byte [esp + 0xc], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 8]
mov esi, ecx
xor esi, 0x9f31c4a4
mov ebx, edi
and ebx, 6
sub ebx, esi
mov esi, ebx
and esi, edx
mov ebp, esi
not ebp
or ebx, edx
lea edx, [esi + ebp*2]
inc edx
and edx, ebx
add dl, 0x34
mov byte [esp + ecx + 8], dl
inc ecx
add edi, 2
cmp ecx, 5
jne 0x4250e0
mov ecx, dword [0x44a4ac]
test ecx, ecx
mov esi, dword [esp + 0x74]
je 0x425150
mov edx, dword [esp + 8]
xor edi, edi
mov ebx, dword [0x44a4b0]
nop
nop
cmp dword [ebx + edi*8], 0xb62b8d10
je 0x425140
inc edi
cmp ecx, edi
jne 0x425130
jmp 0x425150
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x425465
nop
nop
nop
nop
mov ebx, dword [esp + 0x40]
mov eax, dword [esp]
jmp dword [0x4451bc]
push eax
push 4
push ecx
push dword [0x44a4b4]
call fcn.00439880
add esp, 0x10
mov ebx, dword [esp + 0x40]
mov eax, dword [esp]
jmp dword [0x4451bc]