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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x298
mov edx, dword [esp + 0x2b8]
mov dword [esp + 0x7f], 0xe48040
mov dword [esp + 0x7c], 0x4010ec83
mov dword [esp + 0x78], 0x48e78948
mov dword [esp + 0x74], 0xce8948fc
lea edi, [esp + 0x98]
lea eax, [esp + 0x74]
mov ecx, 3
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xa4]
lea eax, [esp + 0x80]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0x82]
mov byte [esp + 0xa6], al
mov esi, edx
cmp edx, 4
jb 0x443698
mov esi, 4
lea ebp, [esp + 0xa7]
test edx, edx
je 0x443980
xor eax, eax
mov dword [esp + 8], esi
jmp 0x4436bd
mov esi, dword [esp + 8]
inc eax
cmp eax, esi
je 0x44391e
cmp eax, 3
ja case.default.0x4436c2
jmp dword [eax*4 + 0x448af0]
mov dword [esp + 0xc], 0xe3fc7a38
mov ecx, 0x49a8c228
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x49a8c21c]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0x38
mov byte [esp + ecx - 0x49a8c21c], dl
inc ecx
cmp ecx, 0x49a8c22c
jne 0x4436e0
lea ebx, [esp + 0xc]
mov edx, ebx
mov edi, ebp
xor ecx, ecx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
mov edi, ebp
mov ecx, 1
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
movzx ecx, byte [esp + 0xe]
mov byte [ebp + 2], cl
add ebp, 3
jmp case.default.0x4436c2
mov dword [esp], ebp
mov dword [esp + 0xc], 0x9fd416d4
mov byte [esp + 0x10], 0x8c
lea ecx, [esp + 0x10]
mov dword [ecx + 4], 0
mov dword [ecx + 1], 0
mov ecx, 0xf6cb3a22
mov edi, 0xdd
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x934c5ea]
mov ebx, edi
xor ebx, ecx
and ebx, edx
xor ebx, ecx
mov edx, ebx
and edx, 0x26031855
xor ebx, 0x2e07dd55
lea ebx, [ebx + edx*2]
mov edx, ebx
not edx
or edx, 1
lea ebp, [edx + ebx]
inc ebp
mov edx, ebp
and edx, 0xfd
mov esi, ebp
and esi, 2
or ebp, 2
imul ebp, esi
xor esi, 2
imul esi, edx
xor ebx, 1
add ebx, ebp
add ebx, esi
mov byte [esp + ecx + 0x934c5ea], bl
inc ecx
dec edi
cmp ecx, 0xf6cb3a2e
jne 0x443770
lea edx, [esp + 0xc]
mov ebp, dword [esp]
mov edi, ebp
mov ecx, 1
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
add ebp, 4
lea edx, [esp + 0x10]
xor ecx, ecx
mov edi, ebp
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
jmp 0x4436b0
mov dword [esp], ebp
mov dword [esp + 0xc], 0x81480e48
mov byte [esp + 0x10], 0x98
lea ecx, [esp + 0x10]
mov dword [ecx + 4], 0
mov dword [ecx + 1], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0xc]
mov ebp, ecx
and ebp, 9
mov edx, ecx
and edx, 2
mov esi, edx
xor esi, 2
imul esi, ebp
or ebp, 2
imul ebp, edx
mov ebx, ecx
xor ebx, 0xcb4c0a5b
add ebx, esi
add ebx, ebp
lea edx, [edi + edi]
not edx
add edx, edi
mov esi, edx
xor esi, 0xa96ffe2b
or edx, 0x569001d4
and edx, esi
and edi, 0x2b
or edi, edx
xor ebx, 0x569001d4
mov edx, edi
and edx, ebx
add ebx, edi
add edx, edx
sub ebx, edx
add bl, 0x39
mov byte [esp + ecx + 0xc], bl
inc ecx
cmp ecx, 0xc
jne 0x443830
lea edx, [esp + 0xc]
mov ebp, dword [esp]
mov edi, ebp
mov ecx, 1
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
add ebp, 4
lea edx, [esp + 0x10]
xor ecx, ecx
mov edi, ebp
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
jmp 0x4436b0
mov dword [esp + 0xc], 0x77a4f6b0
mov byte [esp + 0x10], 0x4c
lea ecx, [esp + 0x10]
mov word [ecx + 5], 0
mov dword [ecx + 1], 0
xor ecx, ecx
nop
nop
nop
mov edx, ecx
add dl, 0x92
xor dl, byte [esp + ecx + 0xc]
add dl, 0x26
mov byte [esp + ecx + 0xc], dl
inc ecx
cmp ecx, 0xb
jne 0x4438e0
lea edx, [esp + 0xc]
mov edi, ebp
mov ecx, 1
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
add ebp, 4
lea edx, [esp + 0x10]
mov edi, ebp
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
jmp case.default.0x4436c2
mov eax, dword [esp + 0x2b8]
cmp eax, 3
jbe 0x443980
test al, 1
je 0x443958
mov eax, 0x449025
mov edx, 0x449025
mov edi, ebp
xor ecx, ecx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edi, ebp
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x2b8]
add ebp, 2
mov ecx, eax
lea eax, [eax*8]
mov esi, 0xffffffff
mov edi, 0xffffffff
cmp eax, 0x7ffffffe
ja 0x444011
dec ecx
cmp ecx, 4
jae 0x443b74
mov dword [esp], ebp
mov dword [esp + 0xc], 0x9742e6a0
lea ebp, [esp + 0x10]
mov byte [esp + 0x10], 0x74
mov dword [esp + 0x11], 0
mov word [esp + 0x15], 0
mov edi, 0x8053f16
mov esi, 0x7fac0e9
nop
nop
nop
movzx eax, byte [esp + edi - 0x8053f0a]
mov edx, esi
and edx, 0x4080008
mov ebx, eax
xor ebx, 0x90002908
mov ecx, edi
and ecx, 0x8053737
or ecx, edx
xor eax, 0x8051637
and eax, ecx
xor ecx, 0xfefddeff
and ecx, ebx
or ecx, eax
add ecx, 0xc88c8c9d
mov eax, ecx
xor eax, 0xc
and ecx, 0x73
add ecx, ecx
sub ecx, eax
inc cl
mov byte [esp + edi - 0x8053f0a], cl
inc edi
dec esi
cmp edi, 0x8053f21
jne 0x4439b0
lea eax, [esp + 0xc]
mov edx, dword [esp]
mov edi, edx
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea esi, [edx + 4]
mov edi, esi
xor ecx, ecx
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
mov dword [esp + 0x93], 0xc3fc8948
mov dword [esp + 0x90], 0x48d2ff41
mov dword [esp + 0x84], 0xba49c031
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x84]
mov edi, esi
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [edx + 0x14]
lea eax, [esp + 0x94]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0x96]
mov byte [edx + 0x16], al
lea ecx, [esp + 0x98]
mov eax, ecx
neg eax
lea ebx, [edx + eax]
add ebx, 0x17
sub edx, ecx
add edx, 0x71
mov dword [esp + 0x70], edx
xor eax, eax
mov dword [esp + 4], 0
mov dword [esp + 0xc], 0xd8dbdac5
mov dword [esp + 0x10], 0
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0xc]
mov edx, eax
and edx, 5
mov esi, eax
and esi, 2
mov edi, eax
or edi, 2
imul edi, esi
xor esi, 2
imul esi, edx
add edi, esi
mov edx, eax
xor edx, 0xc798bd2f
mov esi, edi
and esi, edx
xor edx, edi
lea edx, [edx + esi*2]
xor edx, ecx
mov ecx, 0xeb
sub ecx, edx
and edx, 1
or ecx, 1
sub edx, ecx
mov byte [esp + eax + 0xc], dl
inc eax
cmp eax, 8
jne 0x443ad0
mov esi, dword [esp + 0xc]
mov eax, dword [0x451e48]
test eax, eax
je 0x443d2c
xor ecx, ecx
mov edx, dword [0x451e4c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x3e416e49
je 0x443cfc
inc ecx
cmp eax, ecx
jne 0x443b40
jmp 0x443d2c
mov ecx, dword [esp + 8]
mov eax, ecx
not eax
lea ecx, [eax + ecx*2]
cmp ecx, 3
jbe 0x443980
mov eax, ecx
and eax, 8
mov ebx, ecx
or ebx, 8
imul ebx, eax
xor eax, 8
mov dword [esp + 8], ecx
and ecx, 0xfffffff7
imul ecx, eax
add ebx, ecx
cmp ebx, 0x7e
ja 0x443c50
mov dword [esp + 0xc], 0xefb476b0
mov word [esp + 0x10], 0xcdbc
lea eax, [esp + 0x14]
mov byte [eax + 2], 0
mov dword [eax - 2], 0
mov ecx, 0x4ebca152
mov esi, 0x435ead
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0x4ebca146]
lea eax, [edi + edi]
not eax
add eax, edi
and eax, 0x88fecca2
and edi, 0x5d
or edi, eax
mov eax, esi
and eax, 0x424ca2
mov edx, ecx
and edx, 0x4600215d
or edx, eax
xor edx, edi
add edx, 0xf650d965
mov eax, edx
and eax, 1
xor edx, 1
lea eax, [edx + eax*2]
mov byte [esp + ecx - 0x4ebca146], al
inc ecx
dec esi
cmp ecx, 0x4ebca15d
jne 0x443bd0
lea eax, [esp + 0xc]
mov edi, ebp
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [ebp + 4]
lea eax, [esp + 0x10]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0x10]
mov byte [ebp + 4], al
mov byte [ebp + 3], bl
add ebp, 5
jmp 0x443b60
mov dword [esp], ebp
mov dword [esp + 0xc], 0x83848ac8
mov dword [esp + 0x10], 0xd7060504
mov byte [esp + 0x14], 8
lea eax, [esp + 0x14]
mov word [eax + 5], 0
mov dword [eax + 1], 0
xor esi, esi
nop
nop
nop
nop
nop
movzx eax, byte [esp + esi + 0xc]
lea edi, [esi + 0x619387c0]
lea ebp, [eax + eax]
not ebp
add ebp, eax
mov ecx, esi
xor ecx, 0x3f
and ecx, eax
not eax
or ebp, eax
and ebp, edi
or ecx, ebp
mov edi, ecx
and edi, 0x3d
mov eax, ecx
and eax, 2
mov edx, eax
xor edx, 2
imul edx, edi
or edi, 2
imul edi, eax
lea eax, [ecx + ecx]
and eax, 0x7e
sub ecx, eax
add ecx, edx
add ecx, edi
add cl, 0x40
mov byte [esp + esi + 0xc], cl
inc esi
cmp esi, 0xf
jne 0x443c80
lea eax, [esp + 0xc]
mov edx, dword [esp]
mov edi, edx
mov ecx, 2
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea ebp, [edx + 8]
lea eax, [esp + 0x14]
mov edi, ebp
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [edx + 3], ebx
jmp 0x443b60
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x443d2c
lea ecx, [esp + 0x70]
lea edx, [esp + 4]
push 0x40
push 0x3000
push ecx
push 0
push edx
push 0xffffffffffffffff
push 6
push eax
push dword [0x451e50]
call fcn.00441a80
add esp, 0x24
mov esi, eax
test esi, esi
js 0x443fe0
mov dword [esp + 0xc], 0xd56788d5
mov dword [esp + 0x10], 0xff38ed3
mov dword [esp + 0x14], 0x6306c483
mov dword [esp + 0x18], 0xf0e0d0c
mov dword [esp + 0x1c], 0x395292c8
mov dword [esp + 0x20], 0x9e1e7997
mov dword [esp + 0x24], 0x1fd85e7a
mov dword [esp + 0x28], 0x1f1e1d2f
mov dword [esp + 0x2c], 0x2d4a23a9
mov dword [esp + 0x30], 0xc1262524
mov dword [esp + 0x34], 0x7aa470a4
mov dword [esp + 0x38], 0xf03a69af
mov dword [esp + 0x3c], 0x3b70ecee
mov dword [esp + 0x40], 0x130abe34
mov dword [esp + 0x44], 0xaf21347
mov dword [esp + 0x48], 0x6941ea7c
mov dword [esp + 0x4c], 0x785111f
mov dword [esp + 0x50], 0xc7e5c1e0
mov dword [esp + 0x54], 0xf743c9c8
mov dword [esp + 0x58], 0x8d4705e8
mov dword [esp + 0x5c], 0x921a91f1
mov dword [esp + 0x60], 0xfba9f5be
lea edx, [esp + 0x64]
mov word [esp + 0x64], 0xd9fc
mov byte [esp + 0x6a], 0
mov dword [esp + 0x66], 0
mov esi, 0x40
mov ecx, 0x1f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 0x19
mov eax, esi
and eax, 0xe6
or eax, edi
xor al, byte [esp + esi - 0x34]
xor al, 0x19
add al, 0xc0
mov byte [esp + esi - 0x34], al
inc esi
dec ecx
cmp esi, 0x9f
jne 0x443e10
mov eax, dword [esp + 4]
lea esi, [esp + 0xc]
mov edi, eax
mov ecx, 0x16
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [eax + 0x58]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
movzx ecx, byte [esp + 0x64]
mov byte [eax + 0x58], cl
mov eax, dword [esp + 4]
mov dword [esp + 0xc], 0xb9babbeb
mov byte [esp + 0x10], 0
mov esi, 0x1f
mov edx, 0xe0
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, edx
and edi, 0xaf
mov ecx, esi
and ecx, 0x10
or ecx, edi
xor cl, byte [esp + esi - 0x13]
xor cl, 0xaf
add cl, 0x65
mov byte [esp + esi - 0x13], cl
inc esi
dec edx
cmp esi, 0x24
jne 0x443e80
add eax, dword [esp + 0xc]
mov ecx, ebx
shr ecx, 2
lea edx, [esp + 0x98]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, ebx
and ecx, 0xfffffffc
add eax, ecx
lea edx, [esp + ecx]
add edx, 0x98
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov esi, edx
mov edi, eax
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
je 0x443eed
and ebx, 2
movzx ecx, byte [edx + ebx]
mov byte [eax + ebx], cl
mov eax, dword [esp + 4]
mov dword [esp + 0xc], 0x313e3fd7
mov word [esp + 0x10], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xf5
xor dl, byte [esp + ecx + 0xc]
add dl, 0x37
mov byte [esp + ecx + 0xc], dl
inc ecx
cmp ecx, 6
jne 0x443f10
mov ecx, dword [esp + 0xc]
add ecx, eax
push dword [esp + 0x2b4]
push ecx
call eax
mov esi, eax
mov edi, edx
mov dword [esp + 0x6c], 0
mov dword [esp + 0xc], 0xd8dbdac5
mov dword [esp + 0x10], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0xc]
mov edx, eax
and edx, 5
mov ebx, eax
and ebx, 2
mov ebp, eax
or ebp, 2
imul ebp, ebx
xor ebx, 2
imul ebx, edx
add ebp, ebx
mov edx, eax
xor edx, 0xc798bd2f
mov ebx, ebp
and ebx, edx
xor edx, ebp
lea edx, [edx + ebx*2]
xor edx, ecx
mov ecx, 0xeb
sub ecx, edx
and edx, 1
or ecx, 1
sub edx, ecx
mov byte [esp + eax + 0xc], dl
inc eax
cmp eax, 8
jne 0x443f60
mov eax, dword [0x451e48]
test eax, eax
je 0x444011
mov ecx, dword [esp + 0xc]
xor edx, edx
mov ebx, dword [0x451e4c]
cmp dword [ebx + edx*8], 0x16194952
je 0x443fe7
mov ebp, edx
xor ebp, 1
and edx, 1
lea edx, [edx*2]
add edx, ebp
cmp edx, eax
jb 0x443fc0
jmp 0x444011
mov edi, esi
sar edi, 0x1f
jmp 0x444011
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x444011
lea ecx, [esp + 0x6c]
lea edx, [esp + 4]
push 0x8000
push ecx
push edx
push 0xffffffffffffffff
push 4
push eax
push dword [0x451e50]
call fcn.00441a80
add esp, 0x1c
mov eax, esi
mov edx, edi
add esp, 0x298
pop esi
pop edi
pop ebx
pop ebp
ret 0x10