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

Disassembly:
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
push edi
push esi
push ebp
push ebx
sub esp, 0x94
mov dword [esp + 0x84], edx
mov ebp, eax
mov eax, dword [0x482908]
mov dword [esp + 0x90], eax
test ebp, ebp
je 0x410e6b
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x410e19
mov ebx, dword [ebp + 0x118]
test ebx, ebx
je 0x410e52
mov eax, dword [ebx]
cmp eax, 0xfff88e3b
jne 0x410e00
mov eax, dword [ebx + 0x157b4]
test eax, eax
jle 0x410e39
mov esi, dword [ebx + 0x157c8]
cmp ecx, esi
jb 0x410de7
mov eax, edx
test eax, eax
je 0x410e84
push esi
push 0
push eax
call fcn.0040a02c
add esp, 0xc
mov edx, dword [esp + 0x84]
mov eax, ebp
call fcn.00410ea0
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov eax, dword [ebp + 0x38]
test eax, eax
jne 0x410b97
mov ecx, dword [ebx + 0x157b4]
test ecx, ecx
jle 0x410bc1
fild dword [ebx + 0x157a8]
fld dword [0x4625d0]
mov edx, dword [ebx + 0x157bc]
fld qword [0x4625a0]
mov dword [esp + 0x88], ecx
fild dword [esp + 0x88]
mov esi, 1
add ecx, 0xffffffff
mov dword [esp + 0x88], esi
fild dword [esp + 0x88]
fdiv st(3)
fmul st(1)
fnstcw word [esp + 0x78]
movzx eax, word [esp + 0x78]
and eax, 0xfffff3ff
or eax, 0x400
mov dword [esp + 0x80], eax
fldcw word [esp + 0x80]
fistp dword [esp + 0x88]
fldcw word [esp + 0x78]
mov edi, dword [esp + 0x88]
cmp ecx, edi
jge 0x410b69
mov edi, ecx
fild dword [edx + edi*4]
fmul st(2)
fdiv st(4)
call fcn.0040a090
cmp eax, 0xff
jle 0x410b81
mov eax, 0xff
mov byte [esp + esi + 0x14], al
add esi, 1
cmp esi, 0x64
jl 0x410b1e
fstp st(1)
fstp st(2)
fstp st(0)
fstp st(0)
jmp 0x410bc1
mov esi, 0xff
mov ecx, 0xffffff9d
mov eax, 0x51eb851f
imul esi
mov edi, esi
sar edi, 0x1f
sar edx, 5
sub edx, edi
add esi, 0xff
mov byte [esp + ecx + 0x78], dl
add ecx, 1
jne 0x410ba1
mov edx, dword [ebx + 0xdc08]
mov eax, dword [ebp + 0x60]
mov esi, dword [ebp + 0x84]
lea ecx, [edx - 2]
test eax, eax
jne 0x410bd9
mov ecx, edx
test esi, esi
mov dword [esp + 0x7c], ecx
jne 0x410c06
mov edx, ecx
mov eax, dword [esp + 0x84]
mov byte [eax + edx], 0x49
mov byte [eax + edx + 1], 0x6e
mov byte [eax + edx + 2], 0x66
mov byte [eax + edx + 3], 0x6f
add edx, 4
mov dword [esp + 0x7c], edx
jmp 0x410c29
mov edx, ecx
mov eax, dword [esp + 0x84]
mov byte [eax + edx], 0x58
mov byte [eax + edx + 1], 0x69
mov byte [eax + edx + 2], 0x6e
mov byte [eax + edx + 3], 0x67
add edx, 4
mov dword [esp + 0x7c], edx
mov esi, edx
mov edx, eax
mov byte [esi + edx + 3], 0xf
xor eax, eax
mov byte [esi + edx], al
mov byte [esi + edx + 1], al
mov byte [esi + edx + 2], al
mov eax, dword [ebx + 0x157c0]
mov dword [esp + 0x78], eax
shr eax, 0x18
mov byte [esi + edx + 4], al
mov eax, dword [esp + 0x78]
shr eax, 0x10
mov byte [esi + edx + 5], al
mov eax, dword [esp + 0x78]
shr eax, 8
mov byte [esi + edx + 6], al
mov eax, dword [esp + 0x78]
mov byte [esi + edx + 7], al
mov eax, dword [ebx + 0x157c4]
add eax, dword [ebx + 0x157c8]
mov dword [esp + 0x78], eax
mov ecx, eax
shr eax, 0x18
mov byte [esi + edx + 8], al
mov eax, edx
mov edx, ecx
shr ecx, 0x10
mov byte [esi + eax + 9], cl
mov eax, edx
mov ecx, dword [esp + 0x84]
shr eax, 8
mov byte [esi + ecx + 0xa], al
mov byte [esi + ecx + 0xb], dl
lea edi, [ecx + esi + 0xc]
mov eax, dword [esp + 0x14]
mov dword [edi], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x20]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0x30]
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x34]
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x38]
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0x3c]
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x40]
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0x44]
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0x48]
mov dword [edi + 0x34], eax
mov eax, dword [esp + 0x4c]
mov dword [edi + 0x38], eax
mov eax, dword [esp + 0x50]
mov dword [edi + 0x3c], eax
mov eax, dword [esp + 0x54]
mov dword [edi + 0x40], eax
mov eax, dword [esp + 0x58]
mov dword [edi + 0x44], eax
mov eax, dword [esp + 0x5c]
mov dword [edi + 0x48], eax
mov eax, dword [esp + 0x60]
mov dword [edi + 0x4c], eax
mov eax, dword [esp + 0x64]
mov dword [edi + 0x50], eax
mov eax, dword [esp + 0x68]
mov dword [edi + 0x54], eax
mov eax, dword [esp + 0x6c]
mov dword [edi + 0x58], eax
mov eax, dword [esp + 0x70]
mov dword [edi + 0x5c], eax
mov eax, dword [esp + 0x74]
mov dword [edi + 0x60], eax
mov eax, dword [ebp + 0x60]
lea esi, [esi + 0x70]
test eax, eax
je 0x410d6e
mov eax, ecx
push eax
push ebx
call fcn.00416568
add esp, 8
test esi, esi
jle 0x410e32
mov ecx, dword [esp + 0x84]
xor edx, edx
xor eax, eax
movzx edi, byte [eax + ecx]
xor edi, edx
shr edx, 8
and edi, 0xff
add eax, 1
xor edx, dword [edi*4 + 0x4621a0]
movzx edx, dx
cmp eax, esi
jl 0x410d81
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov dword [esp + 0xc], 0
lea ecx, [esi + edi + 0x70]
mov word [esp + 0x10], dx
mov edx, dword [esp + 0x78]
mov eax, ebp
call fcn.00411054
mov ebx, dword [ebx + 0x157c8]
mov ecx, dword [esp + 0x90]
call fcn.00446571
mov eax, ebx
add esp, 0x94
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [esp + 0x90]
call fcn.00446571
mov eax, esi
add esp, 0x94
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [esp + 0x90]
call fcn.00446571
xor eax, eax
add esp, 0x94
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [esp + 0x90]
call fcn.00446571
xor eax, eax
add esp, 0x94
pop ebx
pop ebp
pop esi
pop edi
ret
xor edx, edx
jmp 0x410da1
mov ecx, dword [esp + 0x90]
call fcn.00446571
xor eax, eax
add esp, 0x94
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [esp + 0x90]
call fcn.00446571
xor eax, eax
add esp, 0x94
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [esp + 0x90]
call fcn.00446571
xor eax, eax
add esp, 0x94
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [esp + 0x90]
call fcn.00446571
xor eax, eax
add esp, 0x94
pop ebx
pop ebp
pop esi
pop edi
ret