Function at 0x41ee01
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x10
push ebp
mov ebp, dword [esp + 0x18]
push esi
push edi
mov eax, dword [ebp + 0x144]
mov edi, dword [ebp]
movsx ecx, word [ebp + 0x14]
movzx esi, byte [eax + ebp + 0x28]
mov eax, dword [ebp + 0x140]
imul eax, ecx
lea edx, [eax + eax*4]
add edx, dword [edi + esi*8 + 4]
mov dword [esp + 0x14], edx
je 0x41f422
and dword [esp + 0x18], 0
test ecx, ecx
jle 0x41f422
push ebx
jmp 0x41ee4b
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, 0x531860
imul esi, esi, 0xac
movsx edi, word [ebp + 0x20]
add esi, 0x530160
movzx eax, byte [esi + 0x66]
cmp eax, edi
jl 0x41ee7a
and dword [0x531860], 0
mov edi, 0x531700
jmp 0x41ee9f
imul eax, eax, 0x154
add eax, dword [ebp + 4]
mov edi, eax
movzx eax, byte [esi]
mov al, byte [eax + edi + 0x44]
cmp al, 0x10
jae 0x41ee9f
movzx eax, al
mov eax, dword [edi + eax*4 + 4]
test eax, eax
mov dword [esp + 0x14], eax
jne 0x41eea3
mov dword [esp + 0x14], ecx
mov al, byte [edx + 3]
mov byte [esp + 0x13], al
mov al, byte [edx + 4]
and dword [esi + 0x18], 0
and dword [esi + 0x1c], 0
and byte [esi + 2], 0
mov bl, al
and al, 0xf
mov byte [esp + 0x24], al
mov al, byte [edi + 0x14c]
shr bl, 4
test al, 1
je 0x41ef1b
lea ecx, [esi + 0x3c]
cmp byte [ecx], 0
jne 0x41ef1b
lea edx, [esi + 0x38]
push 2
push edx
push ecx
lea ecx, [esi + 0x30]
push ecx
lea ecx, [esi + 0x34]
push ecx
mov cl, byte [edi + 0x146]
push ecx
mov cl, byte [edi + 0x147]
push ecx
mov cl, byte [edi + 0x148]
push ecx
lea ecx, [edi + 0xa4]
push ecx
movzx ecx, byte [edi + 0x144]
push ecx
push eax
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x2c]
push eax
push esi
call fcn.0041e032
add esp, 0x38
mov cl, byte [edi + 0x14d]
test cl, 1
je 0x41ef73
lea eax, [esi + 0x54]
cmp byte [eax], 0
jne 0x41ef73
lea edx, [esi + 0x50]
push 4
push edx
push eax
lea eax, [esi + 0x48]
push eax
lea eax, [esi + 0x4c]
push eax
mov al, byte [edi + 0x149]
push eax
mov al, byte [edi + 0x14a]
push eax
mov al, byte [edi + 0x14b]
push eax
lea eax, [edi + 0xf4]
push eax
movzx eax, byte [edi + 0x145]
push eax
lea eax, [esi + 0x40]
push ecx
push eax
lea eax, [esi + 0x44]
push eax
push esi
call fcn.0041e032
add esp, 0x38
cmp byte [esi + 0x65], 0
je 0x41ef8d
movzx eax, word [edi + 0x152]
sub dword [esi + 0x58], eax
jns 0x41ef89
and dword [esi + 0x58], 0
or byte [esi + 2], 2
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 2]
movzx eax, cl
mov edx, eax
shr edx, 4
sub edx, 6
je 0x41f00f
dec edx
je 0x41effc
sub edx, 4
je 0x41efd0
dec edx
dec edx
je 0x41efc8
dec edx
je 0x41efbc
dec edx
jne 0x41f01f
push esi
call fcn.0041dd78
pop ecx
jmp 0x41f01f
and eax, 0xf
add dword [esi + 0x14], eax
or byte [esi + 2], 4
jmp 0x41f01f
and eax, 0xf
sub dword [esi + 0x14], eax
jmp 0x41efc2
and cl, 0xf
push esi
mov byte [esi + 0x87], cl
call fcn.0041ddbb
pop ecx
lea eax, [esi + 0x85]
mov cl, byte [esi + 0x86]
add byte [eax], cl
mov cl, byte [eax]
cmp cl, 0x1f
jle 0x41f01f
sub cl, 0x40
mov byte [eax], cl
jmp 0x41f01f
and eax, 0xf
push 0x40
add dword [esi + 0x10], eax
pop eax
cmp dword [esi + 0x10], eax
jle 0x41f01b
mov dword [esi + 0x10], eax
jmp 0x41f01b
and eax, 0xf
sub dword [esi + 0x10], eax
jns 0x41f01b
and dword [esi + 0x10], 0
or byte [esi + 2], 2
movzx eax, byte [esp + 0x13]
cmp eax, 7
jg 0x41f1dd
je 0x41f1d5
xor ecx, ecx
sub eax, ecx
je 0x41f122
dec eax
je 0x41f108
dec eax
je 0x41f0f2
dec eax
je 0x41f0e3
dec eax
je 0x41f0b9
dec eax
je 0x41f0ac
dec eax
jne 0x41f3f5
push esi
call fcn.0041ddbb
pop ecx
lea eax, [esi + 0x85]
mov cl, byte [esi + 0x86]
add byte [eax], cl
mov cl, byte [eax]
cmp cl, 0x1f
jle 0x41f080
sub cl, 0x40
mov byte [eax], cl
mov al, byte [esi + 0x7c]
mov cl, al
and al, 0xf
shr cl, 4
test cl, cl
je 0x41f3e1
movzx eax, cl
add dword [esi + 0x10], eax
push 0x40
pop eax
cmp dword [esi + 0x10], eax
jle 0x41f3f1
mov dword [esi + 0x10], eax
jmp 0x41f3f1
and dword [esi + 0x1c], 0
push esi
call fcn.0041dd78
pop ecx
jmp 0x41f080
push esi
call fcn.0041ddbb
pop ecx
lea eax, [esi + 0x85]
mov cl, byte [esi + 0x86]
add byte [eax], cl
mov cl, byte [eax]
cmp cl, 0x1f
jle 0x41f3f5
sub cl, 0x40
mov byte [eax], cl
jmp 0x41f3f5
and dword [esi + 0x1c], 0
push esi
call fcn.0041dd78
jmp 0x41f213
movzx eax, byte [esi + 0x78]
shl eax, 2
add dword [esi + 0xc], eax
mov dword [esi + 0x1c], ecx
or byte [esi + 2], 1
jmp 0x41f3f5
movzx eax, byte [esi + 0x79]
shl eax, 2
sub dword [esi + 0xc], eax
push 0x38
pop eax
mov dword [esi + 0x1c], ecx
cmp dword [esi + 0xc], eax
jge 0x41f0ff
mov dword [esi + 0xc], eax
jmp 0x41f0ff
mov eax, dword [esp + 0x18]
cmp byte [eax + 4], 0
jbe 0x41f3f5
mov eax, dword [ebp + 0x134]
push 3
cdq
pop ecx
idiv ecx
dec edx
je 0x41f190
dec edx
jne 0x41f0ff
test byte [ebp + 0x22], 1
je 0x41f155
movzx eax, byte [esp + 0x24]
shl eax, 6
mov dword [esi + 0x1c], eax
jmp 0x41f0ff
mov ebx, dword [esp + 0x14]
movzx ecx, byte [esp + 0x24]
movsx eax, byte [ebx + 0x11]
push eax
movzx eax, byte [esi + 0x67]
add eax, ecx
push eax
call fcn.0041e21a
movsx ecx, byte [ebx + 0x11]
push ecx
mov dword [esp + 0x30], eax
movzx ecx, byte [esi + 0x67]
push ecx
call fcn.0041e21a
mov ecx, dword [esp + 0x34]
add esp, 0x10
sub ecx, eax
jmp 0x41f0fc
test byte [ebp + 0x22], 1
je 0x41f19b
movzx eax, bl
jmp 0x41f14d
mov eax, dword [esp + 0x14]
movzx ecx, bl
movsx eax, byte [eax + 0x11]
push eax
movzx eax, byte [esi + 0x67]
add eax, ecx
push eax
call fcn.0041e21a
mov ebx, eax
mov eax, dword [esp + 0x1c]
movsx eax, byte [eax + 0x11]
push eax
movzx eax, byte [esi + 0x67]
push eax
call fcn.0041e21a
add esp, 0x10
sub ebx, eax
mov dword [esi + 0x1c], ebx
jmp 0x41f0ff
push esi
call fcn.0041df4a
jmp 0x41f213
sub eax, 0xa
je 0x41f080
sub eax, 4
je 0x41f35c
sub eax, 3
je 0x41f30b
sub eax, 8
je 0x41f2cf
dec eax
dec eax
je 0x41f219
dec eax
dec eax
jne 0x41f3f5
push esi
call fcn.0041e2f9
pop ecx
jmp 0x41f3f5
mov al, byte [esi + 0x7f]
test al, al
je 0x41f3f5
movzx ecx, al
mov eax, dword [ebp + 0x134]
cdq
idiv ecx
test edx, edx
jne 0x41f3f5
mov al, byte [esi + 0x7e]
test al, al
je 0x41f3a7
movzx eax, al
dec eax
cmp eax, 0xe
ja case.0x41f24c.8
jmp dword [eax*4 + 0x41f429]
dec dword [esi + 0x10]
jmp case.0x41f24c.8
add dword [esi + 0x10], 0xfffffffe
jmp case.0x41f24c.8
add dword [esi + 0x10], 0xfffffffc
jmp case.0x41f24c.8
add dword [esi + 0x10], 0xfffffff8
jmp case.0x41f24c.8
add dword [esi + 0x10], 0xfffffff0
jmp case.0x41f24c.8
mov eax, dword [esi + 0x10]
push 3
add eax, eax
pop ecx
cdq
idiv ecx
jmp 0x41f2aa
sar dword [esi + 0x10], 1
jmp case.0x41f24c.8
inc dword [esi + 0x10]
jmp case.0x41f24c.8
add dword [esi + 0x10], 2
jmp case.0x41f24c.8
add dword [esi + 0x10], 4
jmp case.0x41f24c.8
add dword [esi + 0x10], 8
jmp case.0x41f24c.8
add dword [esi + 0x10], 0x10
jmp case.0x41f24c.8
mov eax, dword [esi + 0x10]
lea eax, [eax + eax*2]
cdq
sub eax, edx
sar eax, 1
mov dword [esi + 0x10], eax
jmp case.0x41f24c.8
shl dword [esi + 0x10], 1
push 0x40
lea eax, [esi + 0x10]
pop ecx
cmp dword [eax], ecx
jle 0x41f2be
mov dword [eax], ecx
cmp dword [eax], 0
jge 0x41f2c6
and dword [eax], 0
or byte [esi + 2], 2
jmp 0x41f3a7
mov al, byte [esi + 0x7d]
mov cl, al
and al, 0xf
shr cl, 4
test cl, cl
je 0x41f2f2
movzx eax, cl
add dword [esi + 0x14], eax
mov eax, 0xff
cmp dword [esi + 0x14], eax
jle 0x41f302
mov dword [esi + 0x14], eax
jmp 0x41f302
test al, al
je 0x41f302
movzx eax, al
sub dword [esi + 0x14], eax
jns 0x41f302
and dword [esi + 0x14], 0
or byte [esi + 2], 4
jmp 0x41f3f5
mov al, byte [ebp + 0x130]
mov cl, al
and al, 0xf
shr cl, 4
test cl, cl
je 0x41f33b
movzx ecx, cl
lea eax, [ebp + 0x12c]
add dword [eax], ecx
cmp dword [eax], 0x40
jle 0x41f3f5
mov dword [eax], 0x40
jmp 0x41f3f5
test al, al
je 0x41f3f5
movzx eax, al
lea ecx, [ebp + 0x12c]
sub dword [ecx], eax
jns 0x41f3f5
and dword [ecx], 0
jmp 0x41f3f5
movzx eax, bl
sub eax, 9
je 0x41f3c2
sub eax, 3
je 0x41f3b3
dec eax
jne 0x41f3f5
movzx eax, byte [esp + 0x24]
cmp dword [ebp + 0x134], eax
jne 0x41f3ad
push dword [esp + 0x14]
push esi
call fcn.0041e554
mov eax, dword [esi + 0x68]
or byte [esi + 2], 1
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x20]
pop ecx
mov al, byte [eax + 2]
pop ecx
test al, al
je 0x41f3a7
push eax
push esi
call fcn.0041e124
pop ecx
pop ecx
or byte [esi + 2], 8
jmp 0x41f3f5
and byte [esi + 2], 0xf0
jmp 0x41f3f5
movzx eax, byte [esp + 0x24]
cmp dword [ebp + 0x134], eax
jne 0x41f3f5
jmp 0x41f3ed
cmp byte [esp + 0x24], 0
je 0x41f3f5
mov eax, dword [ebp + 0x134]
movzx ecx, byte [esp + 0x24]
cdq
idiv ecx
test edx, edx
jne 0x41f3f5
or byte [esi + 2], 0xb
jmp 0x41f3f5
test al, al
je 0x41f3f1
movzx eax, al
sub dword [esi + 0x10], eax
jns 0x41f3f1
and dword [esi + 0x10], 0
or byte [esi + 2], 2
push edi
push esi
call fcn.0041de59
push ebp
push dword [esp + 0x20]
push esi
call fcn.0041e33e
movsx eax, word [ebp + 0x14]
add dword [esp + 0x2c], 5
add esp, 0x14
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], eax
jl 0x41ee47
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x10
ret