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

Disassembly:
sub esp, 0xc0
push ebx
push ebp
push esi
push edi
mov ecx, 0x13
xor eax, eax
lea edi, [esp + 0x81]
mov byte [esp + 0x80], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ebx, dword [esp + 0xe4]
xor ebp, ebp
stosb byte es:[edi], al
mov ecx, 0x15
xor eax, eax
lea edi, [esp + 0x24]
mov dword [esp + 0x20], ebp
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0xf0]
cmp ebx, 0x3a
mov dword [esp + 0x14], ebp
mov dword [eax], ebp
jbe 0x412710
pop edi
pop esi
pop ebp
mov ax, 0x1d10
pop ebx
add esp, 0xc0
ret
cmp ebx, ebp
lea edi, [esp + 0x80]
je 0x412722
mov edi, dword [esp + 0xe0]
mov esi, dword [esp + 0xd4]
push esi
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x24], ecx
call fcn.00413300
add esp, 4
test al, al
jne 0x413105
mov eax, dword [esi]
mov edx, eax
and dl, 0x10
neg dl
sbb edx, edx
and edx, 0x14
add edx, 0x22000c
and eax, 2
mov dword [esp + 0x18], edx
je 0x412a18
test byte [esi + 0xc], 0x20
je 0x412a18
lea ebp, [ebx + 8]
lea eax, [ebx - 8]
shr ebp, 4
inc ebp
test al, 0xf
mov dword [esp + 0x1c], ebp
je 0x412783
cmp ebx, 0x3a
jne 0x412788
dec ebp
mov dword [esp + 0x1c], ebp
cmp ebp, 4
jbe 0x41279c
pop edi
pop esi
pop ebp
mov ax, 0x1d10
pop ebx
add esp, 0xc0
ret
mov eax, dword [esp + 0xd8]
cmp eax, 0x33
jne 0x4127af
mov eax, 2
jmp 0x4127bb
cmp eax, 1
mov eax, 3
je 0x4127bb
mov eax, ebp
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x2e]
shl ebp, 4
shl eax, 4
add ebp, 8
add eax, 8
push 2
push ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0x2c], ebp
mov byte [esp + 0x30], 8
call fcn.00411a70
mov dl, byte [esp + 0xd8]
mov al, byte [esp + 0xdc]
mov cl, byte [edi]
mov byte [esp + 0x30], dl
mov dl, byte [edi + 1]
mov byte [esp + 0x31], al
mov al, byte [edi + 2]
mov byte [esp + 0x33], dl
mov byte [esp + 0x32], cl
mov cl, byte [edi + 3]
lea edx, [esp + 0x36]
push 2
push edx
mov byte [esp + 0x3c], al
mov byte [esp + 0x3d], cl
call fcn.00411a70
cmp ebx, 4
jbe 0x412854
lea ecx, [ebx - 4]
lea esi, [edi + 4]
mov eax, ecx
lea edi, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, ebp
sub eax, ebx
and ecx, 3
sub eax, 0xf
test eax, eax
rep movsb byte es:[edi], byte [esi]
jle 0x412862
lea ecx, [esp + ebx + 0x34]
push eax
push ecx
jmp 0x41285d
lea edx, [ebp - 0x13]
lea eax, [esp + 0x38]
push edx
push eax
call fcn.00411a70
mov cl, byte [esp + ebp + 0x24]
cmp ebx, 4
mov byte [esp + 0x78], cl
jbe 0x41287a
sub bl, 4
and ebx, 0xff
jmp 0x41287c
xor ebx, ebx
mov ecx, dword [esp + 0x1c]
mov byte [esp + ebp + 0x25], bl
mov dl, byte [esp + 0x36]
mov byte [esp + ebp + 0x26], dl
mov al, byte [esp + 0x37]
mov byte [esp + ebp + 0x27], al
lea eax, [ecx - 1]
cmp eax, 3
ja case.default.0x4128a0
jmp dword [eax*4 + 0x413110]
mov esi, dword [esp + 0xd4]
lea edx, [esp + 0x60]
push edx
mov eax, dword [esi + 0x30]
push eax
call fcn.00411dc0
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x50]
mov bl, byte [esp + eax + 0x60]
xor bl, cl
mov byte [esp + eax + 0x60], bl
inc eax
cmp eax, 0x10
jb 0x4128c1
jmp 0x4128de
mov esi, dword [esp + 0xd4]
mov eax, dword [esi + 0x30]
lea edx, [esp + 0x50]
push edx
push eax
call fcn.00411dc0
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x40]
mov bl, byte [esp + eax + 0x50]
xor bl, cl
mov byte [esp + eax + 0x50], bl
inc eax
cmp eax, 0x10
jb 0x4128f1
jmp 0x41290e
mov esi, dword [esp + 0xd4]
mov eax, dword [esi + 0x30]
lea edx, [esp + 0x40]
push edx
push eax
call fcn.00411dc0
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x30]
mov bl, byte [esp + eax + 0x40]
xor bl, cl
mov byte [esp + eax + 0x40], bl
inc eax
cmp eax, 0x10
jb 0x412921
jmp 0x41293e
mov esi, dword [esp + 0xd4]
mov eax, dword [esi + 0x30]
lea edx, [esp + 0x30]
push edx
push eax
call fcn.00411dc0
lea ecx, [esp + 0x30]
push ecx
call fcn.0041be90
mov ebp, dword [esp + 0xf4]
add esp, 0xc
lea edx, [esp + 0x14]
test ebp, ebp
push edx
je 0x412b83
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x84]
push edi
push eax
lea ecx, [esp + 0x2c]
push 0x58
push ecx
push edx
call fcn.00412410
mov ebx, eax
add esp, 0x18
test bl, bl
jne 0x412c74
cmp dword [esp + 0x14], edi
je 0x4129b9
push esi
call fcn.00413330
add esp, 4
mov ax, 0x1d0d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc0
ret
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x30]
push eax
push ecx
lea eax, [esp + 0x88]
push edx
push eax
call fcn.00413590
mov ebx, eax
add esp, 0x10
test bl, bl
jne 0x412c74
mov ecx, dword [esp + 0xf0]
mov esi, dword [esp + 0xec]
lea edi, [esp + 0x82]
xor edx, edx
mov dword [ecx], esi
mov eax, ebp
sub edi, ebp
test esi, esi
jbe 0x412c53
mov cl, byte [edi + eax]
inc edx
mov byte [eax], cl
inc eax
dec esi
cmp edx, 4
jb 0x4129fe
jmp 0x412c53
cmp eax, ebp
je 0x412c8b
lea eax, [esp + 0x2e]
push 2
push eax
mov dword [esp + 0x2c], 0x48
mov byte [esp + 0x30], 7
call fcn.00411a70
mov cl, byte [esp + 0xd8]
mov dl, byte [esp + 0xdc]
mov al, byte [edi]
mov byte [esp + 0x30], cl
mov cl, byte [edi + 1]
mov byte [esp + 0x31], dl
mov dl, byte [edi + 2]
mov byte [esp + 0x33], cl
mov byte [esp + 0x32], al
mov al, byte [edi + 3]
lea ecx, [esp + 0x36]
push 2
push ecx
mov byte [esp + 0x3c], dl
mov byte [esp + 0x3d], al
call fcn.00411a70
cmp ebx, 4
jbe 0x412aa6
lea ecx, [ebx - 4]
lea esi, [edi + 4]
mov edx, ecx
lea edi, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, 0x39
mov ecx, edx
sub eax, ebx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
jle 0x412ab2
push eax
lea eax, [esp + ebx + 0x38]
push eax
jmp 0x412aad
lea ecx, [esp + 0x38]
push 0x35
push ecx
call fcn.00411a70
cmp ebx, 4
jbe 0x412ac0
sub bl, 4
mov byte [esp + 0x6d], bl
jmp 0x412ac5
mov byte [esp + 0x6d], 0
mov dl, byte [esp + 0x36]
mov esi, dword [esp + 0xd4]
mov al, byte [esp + 0x37]
mov byte [esp + 0x6e], dl
mov edx, dword [esi + 0x30]
lea ecx, [esp + 0x60]
push ecx
push edx
mov byte [esp + 0x77], al
call fcn.00411dc0
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x50]
mov bl, byte [esp + eax + 0x60]
xor bl, cl
mov byte [esp + eax + 0x60], bl
inc eax
cmp eax, 0x10
jb 0x412aef
mov eax, dword [esi + 0x30]
lea edx, [esp + 0x50]
push edx
push eax
call fcn.00411dc0
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x40]
mov bl, byte [esp + eax + 0x50]
xor bl, cl
mov byte [esp + eax + 0x50], bl
inc eax
cmp eax, 0x10
jb 0x412b16
mov eax, dword [esi + 0x30]
lea edx, [esp + 0x40]
push edx
push eax
call fcn.00411dc0
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x30]
mov bl, byte [esp + eax + 0x40]
xor bl, cl
mov byte [esp + eax + 0x40], bl
inc eax
cmp eax, 0x10
jb 0x412b3d
mov esi, dword [esp + 0xd4]
lea edx, [esp + 0x30]
push edx
mov eax, dword [esi + 0x30]
push eax
call fcn.00411dc0
lea ecx, [esp + 0x30]
push ecx
call fcn.0041be90
mov ebp, dword [esp + 0xf4]
add esp, 0xc
lea edx, [esp + 0x14]
test ebp, ebp
push edx
jne 0x412bb1
mov ecx, dword [esp + 0x1c]
push 0
push 0
lea eax, [esp + 0x2c]
push 0x58
push eax
push ecx
call fcn.00412410
push esi
mov edi, eax
call fcn.00413330
add esp, 0x1c
mov ax, di
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc0
ret
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x84]
push 0x48
push eax
lea ecx, [esp + 0x2c]
push 0x58
push ecx
push edx
call fcn.00412410
mov ebx, eax
add esp, 0x18
test bl, bl
je 0x412bec
push esi
call fcn.00413330
add esp, 4
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc0
ret
cmp dword [esp + 0x14], 0x48
je 0x412c0b
push esi
call fcn.00413330
add esp, 4
mov ax, 0x1d0d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc0
ret
mov eax, dword [esi + 0x30]
lea ecx, [esp + 0x80]
push eax
push ecx
call fcn.00412530
mov ebx, eax
add esp, 8
test bl, bl
jne 0x412c74
mov edx, dword [esp + 0xf0]
mov esi, dword [esp + 0xec]
lea edi, [esp + 0x82]
mov eax, ebp
mov dword [edx], esi
xor edx, edx
sub edi, ebp
test esi, esi
jbe 0x412c53
mov cl, byte [eax + edi]
inc edx
mov byte [eax], cl
inc eax
dec esi
cmp edx, 4
jb 0x412c42
mov ecx, esi
lea esi, [esp + 0x88]
mov edx, ecx
lea edi, [ebp + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0xd4]
push esi
call fcn.00413330
add esp, 4
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc0
ret
mov al, byte [esi + 0xc]
mov dword [esp + 0x24], 8
test al, 4
je 0x412d64
cmp ebx, 4
jbe 0x412dda
mov al, byte [esp + 0xd8]
mov cl, byte [esp + 0xdc]
mov dl, byte [edi]
mov byte [esp + 0x28], al
mov al, byte [edi + 1]
mov byte [esp + 0x29], cl
mov cl, byte [edi + 2]
mov byte [esp + 0x2b], al
mov byte [esp + 0x2a], dl
mov dl, byte [edi + 3]
lea eax, [esp + 0x2e]
push 2
push eax
mov byte [esp + 0x34], cl
mov byte [esp + 0x35], dl
call fcn.00411a70
mov esi, 4
cmp ebx, esi
jbe 0x412d45
lea ebp, [esp + 0x32]
mov ecx, dword [esp + 0x24]
push 2
add ecx, 8
inc esi
mov dword [esp + 0x28], ecx
mov cl, byte [esi + edi - 1]
mov byte [ebp - 2], cl
mov dl, byte [esi + edi]
inc esi
mov byte [ebp - 1], dl
mov al, byte [esi + edi]
inc esi
mov byte [ebp], al
mov cl, byte [esi + edi]
inc esi
mov byte [ebp + 1], cl
lea ecx, [ebp + 4]
mov dl, byte [esi + edi]
inc esi
mov byte [ebp + 2], dl
push ecx
mov al, byte [esi + edi]
inc esi
mov byte [ebp + 3], al
call fcn.00411a70
lea eax, [ebp - 2]
push eax
call fcn.0041be90
add esp, 4
add ebp, 8
cmp esi, ebx
jb 0x412cf1
mov eax, ebx
xor edx, edx
mov ecx, 6
div ecx
mov al, byte [esp + 0x2e]
and al, 0xf9
add dl, 2
or dl, al
mov byte [esp + 0x2e], dl
jmp 0x412e17
cmp ebx, 4
jbe 0x412dda
mov ebp, dword [esp + 0xd4]
mov eax, 0xfffffffe
sub eax, edi
lea esi, [edi + 6]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp]
xor edx, edx
mov dword [esp + 0x78], eax
and al, 0xf3
mov dword [ebp], eax
mov dh, byte [esi + 1]
mov dl, byte [esi]
lea ecx, [esp + 0x80]
xor eax, eax
push ecx
mov ah, byte [esi - 1]
mov ecx, dword [esp + 0x20]
mov al, byte [esi - 2]
push edx
lea edx, [ecx + esi - 4]
push eax
push edx
push 3
push ebp
call fcn.00413120
mov ecx, dword [esp + 0x90]
add esp, 0x18
test al, al
mov dword [esp + 0x10], eax
mov dword [ebp], ecx
jne 0x412e67
mov edx, dword [esp + 0x1c]
add esi, 4
add edx, esi
cmp edx, ebx
jb 0x412d7e
mov al, byte [esp + 0xd8]
mov cl, byte [esp + 0xdc]
mov dl, byte [edi]
mov byte [esp + 0x28], al
mov al, byte [edi + 1]
mov byte [esp + 0x29], cl
mov cl, byte [edi + 2]
mov byte [esp + 0x2b], al
mov byte [esp + 0x2a], dl
mov dl, byte [edi + 3]
lea eax, [esp + 0x2e]
push 2
push eax
mov byte [esp + 0x34], cl
mov byte [esp + 0x35], dl
call fcn.00411a70
lea ecx, [esp + 0x28]
push ecx
call fcn.0041be90
mov ebp, dword [esp + 0xec]
add esp, 4
test ebp, ebp
jne 0x412e6d
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x14]
push edx
push ebp
push ebp
lea eax, [esp + 0x2c]
push 0x58
push eax
push ecx
call fcn.00412410
mov edx, dword [esp + 0xec]
mov esi, eax
push edx
call fcn.00413330
add esp, 0x1c
mov ax, si
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc0
ret
push ebp
jmp 0x4130f8
mov edi, dword [esp + 0xd4]
test byte [edi + 0xc], 4
je 0x412fbf
mov eax, dword [esp + 0xec]
cmp eax, 4
jbe 0x412fbf
lea ecx, [eax + 7]
mov eax, 0xaaaaaaab
mul ecx
mov esi, edx
lea edx, [esp + 0x14]
shr esi, 2
shl esi, 3
push edx
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x84]
push esi
push eax
lea ecx, [esp + 0x2c]
push 0x58
push ecx
push edx
call fcn.00412410
mov ebx, eax
add esp, 0x18
test bl, bl
je 0x412edf
push edi
call fcn.00413330
add esp, 4
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc0
ret
cmp dword [esp + 0x14], esi
je 0x412efd
push edi
call fcn.00413330
add esp, 4
mov ax, 0x1d0d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc0
ret
lea eax, [esp + 0x80]
push 0
push eax
call fcn.00412530
mov ebx, eax
add esp, 8
test bl, bl
mov dword [esp + 0x10], ebx
jne 0x412fa8
mov al, byte [esp + 0x84]
mov cl, byte [esp + 0x82]
mov dl, byte [esp + 0x83]
mov byte [ebp + 2], al
mov eax, dword [esp + 0xec]
mov byte [ebp], cl
mov cl, byte [esp + 0x85]
mov edi, 4
cmp eax, edi
mov byte [ebp + 1], dl
mov byte [ebp + 3], cl
mov esi, 8
jbe 0x412f91
mov ebx, esi
and ebx, 7
jne 0x412f71
lea edx, [esp + esi + 0x80]
push edx
call fcn.0041be90
add esp, 4
cmp ebx, 6
jae 0x412f81
mov al, byte [esp + esi + 0x80]
mov byte [edi + ebp], al
inc edi
mov eax, dword [esp + 0xec]
inc esi
cmp edi, eax
jb 0x412f5a
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xec]
mov edi, dword [esp + 0xd4]
mov dword [ecx], edx
push edi
call fcn.00413330
add esp, 4
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc0
ret
lea eax, [esp + 0x14]
lea ecx, [esp + 0x80]
push eax
mov eax, dword [esp + 0x1c]
push 8
push ecx
lea edx, [esp + 0x2c]
push 0x58
push edx
push eax
call fcn.00412410
mov ebx, eax
add esp, 0x18
test bl, bl
je 0x412fff
push edi
call fcn.00413330
add esp, 4
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc0
ret
cmp dword [esp + 0x14], 8
je 0x413010
mov dword [esp + 0x10], 0x1d0d
jmp 0x413026
lea ecx, [esp + 0x80]
push 0
push ecx
call fcn.00412530
add esp, 8
mov dword [esp + 0x10], eax
mov al, byte [esp + 0x10]
test al, al
jne 0x4130f0
mov ebx, dword [esp + 0xf0]
lea esi, [esp + 0x82]
xor ecx, ecx
mov eax, ebp
sub esi, ebp
mov edx, dword [esp + 0xec]
test edx, edx
jbe 0x413071
mov dl, byte [eax + esi]
mov edi, dword [esp + 0xec]
mov byte [eax], dl
mov edx, dword [ebx]
inc edx
inc ecx
inc eax
dec edi
cmp ecx, 4
mov dword [ebx], edx
mov dword [esp + 0xec], edi
jb 0x413046
xor edi, edi
add ebp, 4
mov dword [esp + 0x18], ebp
cmp edi, dword [esp + 0xec]
jae 0x4130f0
mov ebp, dword [esp + 0xd4]
lea ecx, [esp + 0x80]
push ecx
push 0
mov esi, dword [ebp]
push 0
mov eax, esi
push edi
and al, 0xf3
push 2
push ebp
mov dword [ebp], eax
call fcn.00413120
add esp, 0x18
mov dword [esp + 0x10], eax
test al, al
mov dword [ebp], esi
jne 0x4130f0
mov esi, dword [esp + 0xec]
xor eax, eax
cmp eax, esi
jae 0x4130dd
mov ecx, dword [esp + 0x18]
mov dl, byte [esp + eax + 0x82]
mov byte [ecx + eax], dl
mov ebp, dword [ebx]
inc ebp
inc eax
cmp eax, 4
mov dword [ebx], ebp
jb 0x4130c0
mov ecx, dword [esp + 0x18]
add edi, 4
add ecx, 4
cmp edi, 0x40
mov dword [esp + 0x18], ecx
jb 0x41307a
mov edx, dword [esp + 0xd4]
push edx
call fcn.00413330
mov ax, word [esp + 0x14]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc0
ret