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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x98
push ebx
xor eax, eax
add eax, dword [0x412028]
and dword [0x4121aa], eax
push esi
dec esi
mov esi, 0x43dac9e
mov dword [ebp - 0x1c], esi
movzx eax, word [0x4122e6]
and dword [0x4122ea], eax
push edi
xor edi, edi
xor eax, dword [0x41230a]
lea ecx, [esi + 1]
or dword [0x412312], 0xb6f
mov dword [ebp - 0x38], ecx
xor eax, eax
add eax, dword [0x412024]
add eax, dword [0x4122ba]
mov dword [0x412024], eax
mov dword [ebp - 0x18], edi
sbb dword [0x4122e2], edi
mov eax, dword [ebp - 0x38]
sbb dword [0x4122ae], 0x4121da
sub eax, esi
mov dword [ebp - 0x34], eax
adc dword [0x4122fe], ecx
mov dword [ebp - 0x3c], edi
mov eax, dword [ebp + 8]
xor dword [0x412028], 0x4954
mov dword [ebp - 0xc], eax
not eax
mov dword [ebp - 0x20], esi
xor dword [0x4121ae], 0x5245
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
adc dword [0x4122c6], 0x4122f2
sub al, 0x37
mov dword [0x4122e2], 0x7dcd
cmp al, 0x16
mov dword [0x412316], 0x65f7
jne 0x4038f0
mov eax, dword [ebp - 0xc]
xor dword [0x41219e], 0x4122b6
mov edx, dword [ebp - 0xc]
add dword [0x4122ae], 0x412030
add edx, dword [eax + 0x3c]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x20]
movzx edx, byte [0x4122b6]
or edx, dword [0x412008]
mov dword [0x4122b6], edx
mov edx, dword [ebp - 8]
sub eax, esi
mov dword [0x412312], 0x528
cmp dword [edx + 0x54], eax
mov dword [0x4122ba], 0x10b5
je 0x4038f0
mov eax, dword [0x412010]
mov eax, dword [ebp - 8]
jmp 0x4038ff
mov eax, dword [ebp - 0x20]
sub dword [section..data], 0x680f
sub eax, esi
mov dword [ebp - 8], eax
movzx eax, byte [0x4121c2]
add dword [0x41219e], eax
mov eax, dword [ebp - 0x1c]
sbb dword [0x4122aa], edx
mov edx, dword [ebp - 8]
sub eax, esi
cmp edx, eax
jne 0x403950
movzx eax, word [0x41231a]
add dword [0x4122f2], eax
mov eax, dword [ebp - 0x1c]
mov dword [0x4121ce], 0x9d4
sub eax, esi
mov dword [0x412312], 0x4cb7
jmp 0x4040c6
sbb dword [0x4121d6], edi
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
adc dword [0x41201c], 0x41230a
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], ecx
adc ecx, 0x56c
mov dword [ebp - 0x24], eax
and eax, 0xbde
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x78]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
sbb dword [0x4121ba], 0x7637
sub eax, esi
sub ecx, esi
add dword [0x41201c], 0x2f89
imul eax, ecx
mov ecx, dword [0x4122ba]
mov ecx, dword [ebp - 0x28]
cmp ecx, eax
mov dword [0x4122ea], edi
mov eax, dword [ebp - 0xc]
jne 0x4039f8
and dword [0x412024], 0x4122b2
mov ecx, dword [ebp - 8]
sub eax, esi
add dword [0x4122a2], 0x7ffd
sub ecx, esi
and dword [0x4122e2], 0x3705
imul eax, ecx
mov dword [0x41229e], 0x7fb3
jmp 0x403a23
mov ecx, dword [ebp - 0x28]
xor dword [0x412038], 0x1a3d
sub eax, esi
add dword [0x4121c6], 0x725a
imul eax, ecx
add eax, dword [ebp - 0x24]
add dword [0x412302], edi
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [0x412946], eax
adc eax, dword [0x412034]
mov eax, dword [ebp - 0x1c]
dec dword [0x4122ae]
mov ecx, dword [0x412946]
sub eax, esi
mov dword [0x4122e2], 0x7c88
cmp ecx, eax
mov dword [0x412034], 0x2670
je 0x403925
mov eax, dword [0x412946]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x34], eax
add eax, ecx
mov eax, dword [0x412946]
mov ecx, dword [ebp + 8]
xor dword [0x41200c], 0x4121be
add ecx, dword [eax + 0x20]
adc dword [0x412038], edi
mov dword [ebp - 0x20], edi
sbb eax, 0x6c85
mov dword [ebp - 0x40], ecx
and ecx, 0xe3
mov eax, dword [0x412946]
mov ecx, dword [ebp + 8]
add ecx, dword [eax + 0x24]
mov dword [ebp - 0x44], ecx
mov eax, dword [0x412946]
mov ecx, dword [ebp + 8]
sbb dword [0x412312], 0x412034
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], 0xb0c84622
mov dword [ebp - 0x50], 0x874392b
mov eax, dword [ebp - 0x34]
mov dword [0x4122a2], 0x26cf
cmp dword [ebp - 0x20], eax
mov dword [0x4122da], 0x4cad
jae 0x403b22
mov ecx, dword [ebp - 0x40]
sub dword [0x412038], ebx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
add edx, dword [ecx + eax*4]
movzx ecx, byte [0x4121ba]
mov dword [ebp - 0x4c], edx
mov ecx, dword [ebp - 0x40]
mov dword [0x412028], 0x512b
cmp dword [ecx + eax*4], edi
je 0x403f46
mov dword [ebp - 0x18], edi
jmp 0x403c32
add eax, 0x29ef
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
and dword [0x4122da], 0x4122fe
sub eax, esi
mov dword [0x4122aa], 0x34b2
cmp ecx, eax
je 0x403925
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x14]
and dword [0x4122a6], 0x459b
test eax, eax
je 0x403fb3
movzx edx, byte [0x4122de]
xor edx, dword [0x4121da]
mov dword [0x4122de], edx
mov dword [ebp - 0x30], edi
mov eax, 3
or edx, ebx
push eax
and dword [0x4122d2], 0x7e2
mov edx, 0
movzx eax, word [0x4121d2]
add eax, dword [0x4122e6]
mov dword [0x4121d2], eax
pop edx
add edx, 8
xor ebx, ebx
xor ebx, dword [0x412038]
adc ebx, dword [0x4121aa]
mov dword [0x412038], ebx
push edx
and eax, dword [0x4122ea]
pop ecx
push 6
inc ebx
dec ecx
inc dword [0x4121c2]
pop ebx
dec ebx
xchg ebx, ecx
sub ebx, ecx
xchg ebx, ecx
dec ecx
add dword [0x4122c6], edx
mov eax, dword [ebp + 0x14]
add dword [0x4121ce], 0x67db
imul eax, ecx
sbb ecx, dword [0x4122ea]
sub esp, eax
mov dword [ebp - 0x30], esp
mov eax, dword [ebp - 0x1c]
sub eax, esi
not ecx
mov dword [ebp - 0x10], eax
mov ecx, 0x7acf
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
cmp eax, 0x83de2501
jne 0x403f76
cmp ecx, 0x357345
mov dword [0x412302], 0x86
jne 0x403f76
add ecx, dword [0x412008]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0xc]
add dword [0x4122de], ecx
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
inc dword [0x4122fe]
mov cx, word [ecx + 0x20]
mov eax, 0x7c9e
mov dword [0x41203c], 0x1dea
sub cx, ax
movzx eax, cx
or dword [0x4121be], edi
mov dword [ebp - 0x24], eax
mov dword [ebp - 8], edi
sbb dword [0x4121c2], 0xec1
mov byte [ebp - 1], 0xca
sub dword [0x4121d2], 0x52b6
lea eax, [ebp - 1]
adc ecx, dword [0x4121c2]
mov dword [ebp - 0x14], eax
xor ecx, dword [0x4122ca]
mov al, byte [ebp - 1]
mov ecx, dword [0x412034]
add dword [0x4122ca], ecx
mov ecx, dword [ebp - 0x14]
add al, 0x37
mov byte [ecx], al
add dword [0x4122de], edx
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], 0x43dac9f
and dword [0x4122da], edx
mov eax, dword [ebp - 0x10]
adc dword [0x4121d2], 0x5179
sub eax, esi
mov dword [ebp - 0xc], eax
or eax, 0x3e57
mov eax, dword [ebp - 0x10]
sub dword [0x41219e], 0x284a
sub eax, esi
mov dword [0x4122f2], 0x2ec3
jmp 0x403e1c
mov dword [0x412302], 0x261
mov cl, byte [ebp - 1]
mov byte [ebp + eax - 0x98], cl
mov dword [0x412312], 0x6ab2
cmp eax, 0x3f
jne 0x403e0e
sbb ecx, dword [0x4122e2]
mov edx, dword [ebp - 0x10]
add ecx, 0x4ec6
mov ecx, dword [ebp - 0x24]
sub edx, esi
cmp edx, ecx
mov dword [0x412020], 0x7bce
je 0x403df0
add dword [0x412038], 0x5cfd
mov edi, dword [ebp - 0x28]
mov di, word [edi + edx*4 + 2]
xor ecx, dword [0x4122aa]
mov ecx, 0x7c9e
add dword [0x41200c], 0x173b
sub di, cx
neg ecx
movzx ecx, di
mov dword [ebp - 8], ecx
add dword [0x4122be], edi
mov edi, dword [ebp - 0x28]
and dword [0x4122ae], edi
mov ecx, 0x7100
and dword [0x4122b6], 0x4122fa
add cx, word [edi + edx*4]
mov edi, dword [ebp - 8]
sbb dword [0x41230e], 0x4121b2
movzx ecx, cx
add ecx, 0x1262
mov dword [0x412024], 0x1ca
mov byte [ebp + edi - 0x98], cl
mov ecx, dword [ebp - 0x24]
inc edx
mov dword [0x412302], 0x2eba
cmp edx, ecx
jne 0x403d50
movzx ecx, word [0x4122e6]
sbb dword [0x4121ce], ecx
xor edi, edi
adc ecx, dword [0x412038]
mov ecx, dword [ebp - 0x10]
add dword [0x41200c], 0x412028
sub ecx, esi
inc dword [0x4122fe]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x48]
lea ecx, [ecx + eax + 0x43dac9e]
mov dword [ebp - 0x48], ecx
inc eax
cmp eax, 0x40
mov dword [0x41229e], 0x20f2
jb 0x403d03
mov dword [ebp - 0x24], edi
mov eax, dword [ebp - 0x10]
mov dword [0x4121da], 0x7e67
add al, 0x62
add dword [0x412020], 0x412000
movzx eax, al
xor dword [0x41203c], 0x412316
push edi
push eax
adc eax, dword [0x4121ce]
mov eax, dword [ebp - 0xc]
mov al, byte [ebp + eax - 0x98]
and dword [0x41203c], 0x4121da
movzx eax, al
adc dword [0x4121c2], 0x4121be
push eax
add dword [0x4121b6], 0x4121a6
call fcn.00401e4f
sbb dword [0x41202c], 0x4122de
test eax, eax
jne 0x403f19
mov dword [0x4122a2], 0x7377
add dword [ebp - 0x24], 0x3b66cfe5
or eax, dword [0x4122ee]
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax]
and dword [0x4122fa], 0x412014
push 1
sub dword [0x4121ba], 0xed5
push eax
mov eax, dword [ebp - 0xc]
mov al, byte [ebp + eax - 0x98]
adc dword [0x4121ba], 0x6c5b
movzx eax, al
and dword [0x412024], 0x5ad4
push eax
call fcn.00401e4f
test eax, eax
je 0x403f31
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
movsx ecx, byte [ecx]
sub eax, esi
cmp ecx, eax
je 0x403f38
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
lea eax, [ecx + eax - 0x43dac9e]
mov dword [ebp - 0xc], eax
inc dword [ebp - 0x18]
jmp 0x403e32
xor eax, eax
jmp 0x403f43
mov eax, dword [ebp - 0x14]
sub eax, esi
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
sub eax, esi
cmp ecx, eax
je 0x403f6e
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x20]
movzx eax, word [eax + ecx*2]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x3c], eax
jmp 0x403b22
inc dword [ebp - 0x20]
jmp 0x403ac8
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
je 0x403fb3
lea eax, [ebp + 0x14]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x30]
add eax, 4
mov edi, dword [eax]
mov dword [edx + ecx*4], edi
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x10]
lea ecx, [edx + ecx - 0x43dac9e]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 0x14]
cmp ecx, edx
jne 0x403f87
mov eax, dword [ebp - 0x1c]
sub eax, esi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp + 8], eax
mov ebx, 0
add ebx, 0x5345
add ecx, ebx
mov esi, 0x2346
or esi, 5
cmp ebx, esi
jne 0x404096
push esp
xor esp, esp
mov byte [esp], 0x84
add byte [esp], 0x92
shr esp, 1
adc ebp, 0x8924
or byte [ebp], 0x38
push esp
xor esp, esp
mov byte [esp], 0x84
add byte [esp], 0x92
shr esp, 1
adc ebp, 0x8924
or byte [ebp], 0x38
push esp
xor esp, esp
mov byte [esp], 0x84
add byte [esp], 0x92
shr esp, 1
adc ebp, 0x8924
or byte [ebp], 0x38
push esp
xor esp, esp
mov byte [esp], 0x84
add byte [esp], 0x92
shr esp, 1
adc ebp, 0x8924
or byte [ebp], 0x38
push esp
xor esp, esp
mov byte [esp], 0x84
add byte [esp], 0x92
shr esp, 1
adc ebp, 0x8924
or byte [ebp], 0x38
push esp
xor esp, esp
mov byte [esp], 0x84
add byte [esp], 0x92
shr esp, 1
adc ebp, 0x8924
or byte [ebp], 0x38
push esp
xor esp, esp
mov byte [esp], 0x84
add byte [esp], 0x92
shr esp, 1
adc ebp, 0x8924
or byte [ebp], 0x38
push esp
xor esp, esp
mov byte [esp], 0x84
add byte [esp], 0x92
shr esp, 1
adc ebp, 0x8924
or byte [ebp], 0x38
xor edx, edx
mov ecx, edx
add ecx, dword [ebp - 0x14]
inc ecx
mov ebx, 0
adc eax, 0x18
or edx, eax
mov eax, 0
or edx, 0x1231
dec ecx
and edx, 0x7432
call ecx
xor ecx, ecx
add ecx, eax
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
pop edi
pop esi
pop ebx
leave
ret