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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
mov dword [esp + 0x30], 0xaee6f2cd
mov dword [esp + 0x34], 0xfafcf0fc
lea edx, [esp + 0x38]
mov byte [esp + 0x38], 0x64
mov dword [esp + 0x39], 0
mov dword [esp + 0x3d], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x13
ja 0x40b32e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x30]
mov esi, 0x6d
sub esi, eax
add eax, 0x5b3fdc92
xor esi, eax
and esi, ecx
xor esi, eax
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x18]
add al, 2
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x14
jb 0x40b2f0
lea eax, [esp + 0xc]
lea ebx, [esp + 0x30]
mov esi, ebx
mov edi, eax
mov ecx, 2
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0x14]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
movzx ecx, byte [esp + 0x38]
mov byte [esp + 0x14], cl
mov dword [esp + 0x30], 0x9bed99db
mov dword [esp + 0x34], 0x971a95e2
mov dword [esp + 0x38], 0x93e491ed
mov dword [esp + 0x3c], 0xaf9bad20
mov dword [esp + 0x40], 0xab23a9c4
mov dword [esp + 0x44], 0xa7dba5d4
mov dword [esp + 0x48], 0xa382a1ea
mov dword [esp + 0x4c], 0xbfcebddd
mov dword [esp + 0x50], 0xbbceb9c8
mov dword [esp + 0x54], 0xb7d5b5cd
mov dword [esp + 0x58], 0xb33eb1d1
mov dword [esp + 0x5c], 0xcfb9cdb5
mov dword [esp + 0x60], 0xcbfdc9be
mov dword [esp + 0x64], 0xc7f3c54c
mov dword [esp + 0x68], 0xc34dc14f
mov dword [esp + 0x6c], 0xdfebdd53
mov dword [esp + 0x70], 0xdbadd9a6
mov dword [esp + 0x74], 0xd7a3d5a6
mov dword [esp + 0x78], 0xd35fd1e5
mov dword [esp + 0x7c], 0xef9aed9e
mov dword [esp + 0x80], 0xeb9ce995
mov dword [esp + 0x84], 0xe791e587
mov dword [esp + 0x88], 0xe39fe19c
mov dword [esp + 0x8c], 0xffebfd80
mov dword [esp + 0x90], 0xfbfaf9e2
mov byte [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x68
ja 0x40b49b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0xeb
sub esi, ecx
add ecx, 0x13d11714
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x18]
add cl, 0x74
mov edx, dword [esp]
mov byte [esp + edx + 0x30], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x69
jb 0x40b460
mov ecx, dword [ebp + 8]
mov dword [esp + 0x18], 0xc363c12f
mov dword [esp + 0x1c], 0xc76fc574
mov word [esp + 0x20], 0xc9c8
mov dword [esp + 0x22], 0
mov dword [esp + 0x26], 0
mov dword [esp + 0x29], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0x14
ja 0x40b51e
nop
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x18]
mov edi, 0xdf
sub edi, edx
add edx, 0xbe16c520
xor edi, edx
and edi, esi
xor edi, edx
mov dword [esp], edi
mov edx, dword [esp]
add dl, 0x20
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x18], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x15
jb 0x40b4e0
lea edx, [esp + 8]
lea esi, [esp + 0x18]
push 0
push edx
push 8
push eax
push ebx
push esi
push ecx
call fcn.0040bf10
add esp, 0x1c
test al, al
je 0x40b686
mov word [esp + 0x30], 0xf0f7
mov byte [esp + 0x32], 0x64
mov dword [esp + 0x33], 0
mov dword [esp + 0x37], 0
mov dword [esp + 0x3a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x40b5b9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x30]
mov edx, 0xee
sub edx, eax
add eax, 0x924b4211
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0x89
mov ecx, dword [esp]
mov byte [esp + ecx + 0x30], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x40b580
xor ecx, ecx
mov eax, dword [esp + 8]
nop
movzx edx, byte [eax + ecx]
mov dh, byte [esp + ecx + 0x30]
test dl, dl
je 0x40b5d1
inc ecx
cmp dl, dh
je 0x40b5c0
mov bl, 1
cmp dl, dh
je 0x40b8e6
mov dword [esp + 0x30], 0x2f3d3e2b
mov dword [esp + 0x34], 0x9f0a0c39
mov byte [esp + 0x38], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40b639
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x30]
mov edx, 0xe4
sub edx, eax
add eax, 0x59ba3c1b
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0x43
mov ecx, dword [esp]
mov byte [esp + ecx + 0x30], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40b600
mov eax, dword [esp + 8]
movzx ebx, byte [esp + 0x30]
mov ecx, eax
test bl, bl
je 0x40b68d
lea edx, [esp + 0x30]
mov esi, eax
mov ecx, eax
jmp 0x40b667
movzx ebx, byte [edx]
test bl, bl
je 0x40b68d
mov bh, byte [esi]
test bh, bh
je 0x40b794
inc esi
inc edx
lea edi, [ecx + 1]
cmp bh, bl
je 0x40b67e
mov ecx, edi
mov esi, edi
je 0x40b660
lea edx, [esp + 0x30]
jmp 0x40b660
xor ebx, ebx
jmp 0x40b8ef
test ecx, ecx
je 0x40b794
mov dword [esp + 0x30], 0xa6bfacbe
mov dword [esp + 0x34], 0xabb7678d
mov dword [esp + 0x38], 0x737ca2a7
mov dword [esp + 0x3c], 0xa2aab0aa
mov dword [esp + 0x40], 0x5b7498b1
lea edx, [esp + 0x44]
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov word [esp + 0x4c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x1d
ja 0x40b729
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x30]
mov esi, 0xf5
sub esi, eax
add eax, 0xf01c2d0a
xor esi, eax
and esi, ecx
xor esi, eax
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x18]
add al, 0xba
mov ecx, dword [esp]
mov byte [esp + ecx + 0x30], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x1e
jb 0x40b6f0
lea esi, [esp + 0x30]
mov ecx, 5
lea eax, [esp + 0x18]
mov edi, eax
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0x2c]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, dword [esp + 8]
movzx ebx, byte [esp + 0x18]
test bl, bl
je 0x40b79b
mov edx, eax
mov edi, ecx
mov esi, eax
mov eax, ecx
jmp 0x40b777
movzx ebx, byte [edx]
test bl, bl
je 0x40b79d
mov bh, byte [ecx]
test bh, bh
je 0x40b8d1
inc ecx
inc edx
lea edi, [eax + 1]
cmp bh, bl
je 0x40b78e
mov eax, edi
mov ecx, edi
je 0x40b770
mov edx, esi
jmp 0x40b770
xor ebx, ebx
jmp 0x40b8e6
mov eax, ecx
test eax, eax
je 0x40b8d1
mov word [esp + 0x30], 0x4f62
mov byte [esp + 0x32], 0x8a
mov dword [esp + 0x33], 0
mov dword [esp + 0x37], 0
mov word [esp + 0x3b], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xc
ja 0x40b81e
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0x95
sub esi, ecx
add ecx, 0xa481556a
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp], esi
mov ecx, dword [esp]
add cl, 0x1a
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xd
jb 0x40b7e0
movzx ebx, byte [esp + 0x30]
test bl, bl
je 0x40b866
add eax, 0x13
lea ecx, [esp + 0x30]
mov esi, eax
mov edi, eax
jmp 0x40b847
movzx ebx, byte [ecx]
test bl, bl
je 0x40b874
mov bh, byte [esi]
test bh, bh
je 0x40b8d1
inc esi
inc ecx
lea edx, [edi + 1]
cmp bh, bl
je 0x40b85e
mov edi, edx
mov esi, edx
je 0x40b840
lea ecx, [esp + 0x30]
jmp 0x40b840
mov byte [0x44011c], 1
mov eax, 0x44011e
jmp 0x40b8db
test edi, edi
je 0x40b8d1
mov byte [0x44011c], 1
mov dword [esp + 0x30], 0
mov ecx, eax
mov eax, 0x44011e
cmp ecx, edi
jae 0x40b8db
mov esi, ecx
xor ebx, ebx
cmp byte [esi], 0
je 0x40b8d5
lea eax, [esp + 0x30]
push eax
push edi
push esi
call fcn.0040ce00
add esp, 0xc
movzx edx, word [esp + 0x30]
lea ecx, [ebx + 2]
mov word [ebx + 0x44011e], dx
cmp ebx, 0x1fb
ja 0x40b8c9
add esi, eax
mov ebx, ecx
cmp esi, edi
jb 0x40b896
lea eax, [ecx + 0x44011e]
jmp 0x40b8db
xor ebx, ebx
jmp 0x40b8e2
lea eax, [ebx + 0x44011e]
mov word [eax], 0
mov bl, 1
mov eax, dword [esp + 8]
push eax
call fcn.00432090
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret