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

Disassembly:
sub esp, 0xb0
mov eax, dword [0x47a040]
xor eax, esp
push ebx
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb8]
push ebp
xor ebp, ebp
cmp eax, ebp
jl 0x41f793
cmp eax, 0x10
jge 0x41f793
imul eax, eax, 0x58
cmp dword [eax + 0x53e6a0], 1
mov dword [esp + 0x18], eax
jne 0x41f793
mov eax, dword [eax + 0x53e6c0]
imul eax, eax, 0xa8
mov edx, dword [eax + 0x4d3560]
cmp edx, ebp
lea ecx, [eax + 0x4d3560]
je 0x41f793
cmp edx, 3
je 0x41f793
push esi
lea esi, [eax + 0x4d3568]
mov eax, dword [eax + 0x4d3564]
mov dword [esp + 0x24], eax
mov eax, ecx
mov dword [0x4d1eb4], eax
mov dword [eax], 1
mov edx, dword [esi + 0x7c]
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x80]
mov dword [0x4d6028], edx
mov edx, dword [esi + 0x90]
mov dword [0x4d602c], ecx
mov ecx, dword [esi + 0x8c]
mov dword [0x4d601c], edx
mov edx, dword [esi + 0x88]
mov dword [0x4d6020], ecx
mov ecx, dword [esi + 0x84]
mov dword [0x4d6014], edx
mov edx, dword [esi + 0x98]
push edi
mov edi, dword [esi + 0x74]
mov dword [0x4d6018], ecx
mov ecx, dword [esi + 0x94]
mov dword [esp + 0x18], edx
mov edx, dword [esi + 0x54]
push esi
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 0x9c]
push edx
push eax
mov dword [esp + 0x28], ebp
mov dword [0x4d6024], eax
mov dword [esp + 0x1c], ecx
call fcn.00428f90
add esp, 0xc
mov dword [esi + 0x70], ebp
mov dword [esp + 0x24], ebp
mov dword [0x4d816c], ebp
mov al, byte [ebx + edi]
cmp al, 0x81
mov ecx, dword [0x5511e4]
mov edx, 6
jb 0x41ee46
cmp al, 0x9f
jbe 0x41ee72
cmp al, 0xe0
jb 0x41ee4e
cmp al, 0xfc
jbe 0x41ee72
test al, al
jne 0x41ee6c
movzx eax, al
cmp eax, 0x6f
ja case.0x41ee65.12
movzx eax, byte [eax + 0x41f808]
jmp dword [eax*4 + 0x41f7ac]
mov al, byte [ebx + edi + 1]
jmp 0x41ee52
mov dword [esp + 0x24], 1
jmp 0x41ef2e
movsx ebp, byte [ebx + edi + 2]
test ebp, ebp
je 0x41eec3
mov eax, dword [0x551220]
test eax, eax
je 0x41eec3
mov ecx, dword [0x551224]
mov eax, dword [0x551228]
imul ecx, ecx, 0x58
mov edx, dword [ecx + 0x53e6e8]
push 1
push edx
push 1
push eax
call fcn.0041cb80
mov eax, dword [esp + 0x30]
add esp, 0x10
inc ebp
mov dword [eax + 0x53e6cc], ebp
add edi, 3
jmp 0x41ef26
mov ecx, dword [0x551224]
cmp dword [esp + 0xc4], ecx
jne 0x41ef02
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x53e6cc]
test eax, eax
je 0x41ef02
cmp eax, 1
jne 0x41eeeb
test ebp, ebp
jne 0x41eef1
cmp eax, eax
jle 0x41ef02
test ebp, ebp
jne 0x41ef02
push esi
push 1
push 1
call fcn.0041ca90
add esp, 0xc
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
inc ebp
mov dword [eax + 0x53e6cc], ebp
add edi, 3
jmp 0x41ef26
push esi
push 1
push 1
call fcn.0041ca90
add esp, 0xc
mov dword [esp + 0x1c], eax
add edi, 2
mov eax, dword [esp + 0x24]
test eax, eax
je 0x41ef4a
push esi
lea eax, [ebx + edi]
push eax
push 0
call fcn.0041c860
add esp, 0xc
cmp eax, 1
mov dword [esp + 0x1c], eax
je 0x41f3b5
mov ebp, dword [esp + 0x1c]
test ebp, ebp
jne 0x41f733
jmp 0x41ee30
test byte [esp + 0x28], 0x20
jne 0x41ef68
mov dword [esp + 0x1c], edx
jmp case.0x41ee65.12
push esi
push 1
push 1
call fcn.0041ca90
sub eax, 4
add esp, 0xc
neg eax
sbb eax, eax
add eax, 6
jmp 0x41ef1f
movsx ebp, byte [ebx + edi + 2]
mov ecx, dword [esi + 0x54]
push esi
push ecx
push ebp
call fcn.00428f90
add esp, 0xc
test eax, eax
je 0x41ef9e
mov dword [0x4d6024], ebp
add edi, 3
jmp 0x41ef26
movsx ebp, byte [ebx + edi + 2]
mov edx, dword [esi + 0x54]
push esi
push edx
push ebp
call fcn.00428f90
add esp, 0xc
test eax, eax
je 0x41efc0
mov dword [0x4d6024], ebp
mov eax, dword [0x4d6024]
mov dword [esi + 0x14], eax
add edi, 3
jmp 0x41ef26
mov ecx, dword [esi + 0x54]
mov eax, dword [esi + 0x14]
push esi
push ecx
push eax
mov dword [0x4d6024], eax
call fcn.00428f90
add esp, 0xc
jmp case.0x41ee65.12
movzx eax, byte [ebx + edi + 2]
xor edx, edx
mov dh, byte [ebx + edi + 4]
mov dl, byte [ebx + edi + 3]
shl edx, 8
or edx, eax
mov dword [0x4d6020], edx
add edi, 5
jmp 0x41ef26
movzx ecx, byte [ebx + edi + 2]
xor eax, eax
mov ah, byte [ebx + edi + 4]
mov al, byte [ebx + edi + 3]
shl eax, 8
or eax, ecx
mov dword [0x4d6020], eax
mov dword [esi + 0x18], eax
add edi, 5
jmp 0x41ef26
cmp ecx, ebp
jne 0x41f043
mov edx, dword [esi + 0x18]
mov dword [0x4d6020], edx
jmp case.0x41ee65.12
mov eax, dword [esi + 0x18]
mov dword [0x4d6020], eax
jmp case.0x41ee65.12
movzx edx, byte [ebx + edi + 2]
xor ecx, ecx
mov ch, byte [ebx + edi + 4]
mov cl, byte [ebx + edi + 3]
shl ecx, 8
or ecx, edx
mov dword [0x4d601c], ecx
add edi, 5
jmp 0x41ef26
movzx ecx, byte [ebx + edi + 2]
xor eax, eax
mov ah, byte [ebx + edi + 4]
mov al, byte [ebx + edi + 3]
shl eax, 8
or eax, ecx
mov dword [0x4d601c], eax
mov dword [esi + 0x1c], eax
add edi, 5
jmp 0x41ef26
cmp ecx, ebp
jne 0x41f0a8
mov edx, dword [esi + 0x1c]
mov dword [0x4d601c], edx
jmp case.0x41ee65.12
mov eax, dword [esi + 0x1c]
mov dword [0x4d601c], eax
jmp case.0x41ee65.12
push ebp
push 0x140
call fcn.0043a920
add esp, 8
jmp case.0x41ee65.12
movsx eax, byte [ebx + edi + 2]
imul eax, dword [esi + 0x5c]
mov dword [0x4d6018], eax
add edi, 3
jmp 0x41ef26
mov dword [0x4d6018], ebp
jmp case.0x41ee65.12
push esi
push 1
push ebp
call fcn.0041ca90
add esp, 0xc
cmp eax, 1
mov dword [esp + 0x1c], eax
jne 0x41ef26
movsx ebp, byte [ebx + edi + 2]
mov eax, dword [esi + 0x5c]
movsx edx, byte [ebx + edi + 3]
imul eax, ebp
add edi, 2
lea ecx, [edx + edx*4]
shl ecx, 1
cmp eax, ecx
lea ebp, [edi + ebp*2 + 3]
mov dword [esp + 0x10], ebp
jle 0x41f168
sub eax, ecx
shl eax, 0x10
lea ecx, [edx + 1]
cdq
idiv ecx
mov ecx, dword [esi + 0x54]
test ecx, ecx
mov ecx, dword [0x4d602c]
mov dword [esi + 0x68], eax
jne 0x41f15d
mov edx, dword [esi + 0x14]
lea edx, [edx + ecx - 1]
mov ecx, dword [0x4d6028]
shl ecx, 0x10
add ecx, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
jmp 0x41f1be
shl ecx, 0x10
add ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x41f1b2
mov edx, dword [esi + 0x54]
sub eax, ecx
shl eax, 0x10
test edx, edx
mov dword [esi + 0x68], 0
jne 0x41f19e
mov edx, dword [esi + 0x14]
mov ebp, dword [0x4d602c]
mov ecx, dword [0x4d6028]
lea edx, [edx + ebp - 1]
mov dword [esp + 0x14], edx
cdq
sub eax, edx
sar eax, 1
shl ecx, 0x10
add eax, ecx
jmp 0x41f1ba
cdq
sub eax, edx
mov edx, dword [0x4d602c]
sar eax, 1
shl edx, 0x10
add eax, edx
mov dword [esp + 0x14], eax
mov eax, dword [0x4d6028]
add eax, 0xfffffff7
mov dword [esp + 0x18], eax
add dword [esi + 0x68], 0xa0000
mov dword [esp + 0x24], 1
add edi, 2
jmp 0x41ef2e
push esi
push 1
push ebp
call fcn.0041ca90
add esp, 0xc
cmp eax, 1
mov dword [esp + 0x1c], eax
jne 0x41ef26
mov eax, dword [esi + 0x54]
add edi, 2
test eax, eax
jne 0x41f225
mov ecx, dword [esi + 0x14]
mov edx, dword [0x4d602c]
mov ebp, dword [0x4d6028]
lea eax, [ecx + edx - 8]
mov ecx, dword [esi + 0x5c]
mov dword [esp + 0x14], eax
lea eax, [ecx - 0x12]
cdq
sub eax, edx
sar eax, 1
add eax, ebp
shl eax, 0x10
mov dword [esp + 0x18], eax
jmp 0x41f24c
mov ecx, dword [esi + 0x5c]
mov ebp, dword [0x4d602c]
lea eax, [ecx - 0x12]
cdq
sub eax, edx
mov edx, dword [0x4d6028]
sar eax, 1
add eax, ebp
shl eax, 0x10
add edx, 0xfffffff0
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
shl ecx, 0x10
mov dword [esi + 0x68], ecx
mov dword [esp + 0x24], 1
mov dword [esp + 0x10], 0xffffffff
jmp 0x41ef2e
add edi, 2
push 3
lea ebp, [ebx + edi]
push ebp
lea eax, [esp + 0x44]
push 0x20
push eax
call fcn.0043a890
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x53e6f0]
add esp, 0x10
lea ecx, [esp + 0x3c]
push ecx
push edx
mov dword [eax + 0x53e6e0], 0
call dword [0x45e1a8]
push ebp
call dword [0x45e1a4]
lea edi, [edi + eax + 1]
lea eax, [esp + 0x3c]
push eax
push 0
call fcn.00419830
mov eax, dword [0x517dbc]
add esp, 8
cmp eax, 0xffffffff
je 0x41f396
mov ecx, dword [eax*4 + 0x50a66c]
test ecx, ecx
jne 0x41f38e
mov ebp, dword [eax*4 + 0x50a610]
cmp eax, 0xb
jne 0x41f30e
mov eax, dword [0x5511e4]
test eax, eax
jne 0x41f3a0
mov eax, dword [0x50a6d4]
test eax, eax
jne 0x41f31b
push 0
push str.S55I
call fcn.004056f0
add esp, 8
test eax, eax
je 0x41f30e
or ebp, 0xffffffff
mov eax, dword [0x5511e4]
test eax, eax
jne 0x41f3a0
mov eax, dword [0x517dd8]
test eax, eax
jne 0x41f3a0
mov eax, dword [0x551210]
test eax, eax
jne 0x41f3a0
mov eax, dword [0x551204]
test eax, eax
jne 0x41f3a0
cmp dword [0x50a668], 1
je 0x41f3a0
cmp ebp, 0xffffffff
je 0x41f3a0
lea ecx, [esp + 0x2c]
push ecx
xor eax, eax
push 0x8001
lea edx, [esp + 0x44]
push edx
push eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
call fcn.0042fdd0
mov eax, dword [0x50a5e8]
add esp, 0x10
test eax, eax
jne 0x41ef26
push 0x18
push 8
push 0
call fcn.0042ef50
add esp, 0xc
jmp 0x41ef26
or ebp, 0xffffffff
jmp 0x41f2dd
mov ebp, 0x64
jmp 0x41f30e
mov dword [0x517dbc], 0xffffffff
jmp 0x41ef26
inc edi
jmp 0x41ef26
mov edx, dword [0x4d601c]
mov ecx, dword [0x4d6028]
mov eax, dword [0x4d602c]
push edx
mov edx, dword [0x4d6020]
push edx
mov edx, dword [esi + 0x54]
push edx
mov edx, dword [esi + 0x20]
push edx
mov edx, dword [esi + 0x24]
push edx
mov edx, dword [esi + 0x28]
push edx
push ecx
push eax
lea ebp, [ebx + edi]
push ebp
mov dword [0x4d1f40], eax
mov dword [0x4d1f44], ecx
call fcn.0042bd30
mov eax, dword [esp + 0x34]
add esp, 0x24
test eax, eax
je 0x41f617
test eax, eax
mov eax, dword [esi + 0x54]
jge 0x41f4cc
test eax, eax
jne 0x41f46f
push 5
call fcn.004288d0
mov eax, dword [0x4d601c]
mov ecx, dword [0x4d6020]
mov edx, dword [esi + 0x54]
mov ebp, dword [esp + 0x1c]
push eax
mov eax, dword [esi + 0x20]
push ecx
mov ecx, dword [esi + 0x24]
push edx
mov edx, dword [esi + 0x28]
push eax
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov eax, ebp
sar eax, 0x10
push eax
add ecx, 4
push ecx
push 0x460514
call fcn.0042bd30
mov al, byte [ebx + edi + 2]
add esp, 0x28
test al, al
jne 0x41f463
inc edi
jmp 0x41f60f
add ebp, dword [esi + 0x68]
mov dword [esp + 0x18], ebp
jmp 0x41f617
push 2
call fcn.004288d0
mov edx, dword [0x4d601c]
mov eax, dword [0x4d6020]
mov ecx, dword [esi + 0x54]
mov ebp, dword [esp + 0x18]
push edx
mov edx, dword [esi + 0x20]
push eax
mov eax, dword [esi + 0x24]
push ecx
mov ecx, dword [esi + 0x28]
push edx
mov edx, dword [esp + 0x2c]
push eax
push ecx
add edx, 2
push edx
mov eax, ebp
sar eax, 0x10
push eax
push 0x460514
call fcn.0042bd30
mov al, byte [ebx + edi + 2]
add esp, 0x28
test al, al
jne 0x41f4c0
inc edi
jmp 0x41f60f
add ebp, dword [esi + 0x68]
mov dword [esp + 0x14], ebp
jmp 0x41f617
test eax, eax
jne 0x41f574
push 4
call fcn.004288d0
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x18]
mov edx, dword [esi + 0x68]
add edx, eax
mov eax, dword [esi + 0x5c]
add eax, dword [0x4d6028]
sar edx, 0x10
cmp edx, eax
jl 0x41f506
mov al, byte [ebp + 2]
test al, al
jne 0x41f617
mov dl, byte [ebx + ecx]
test dl, dl
lea eax, [ebx + ecx]
je 0x41f551
mov ecx, dword [0x4d601c]
mov edx, dword [0x4d6020]
push ecx
mov ecx, dword [esi + 0x54]
push edx
mov edx, dword [esi + 0x20]
push ecx
mov ecx, dword [esi + 0x24]
push edx
mov edx, dword [esi + 0x28]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x2c]
sar ecx, 0x10
push ecx
push edx
push eax
call fcn.0042bd30
mov eax, dword [esp + 0x34]
add esp, 0x24
add eax, 2
mov dword [esp + 0x10], eax
mov ecx, eax
cmp byte [ebx + ecx], 0
jne 0x41f562
mov al, byte [ebp + 2]
test al, al
je 0x41f60c
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 0x68]
add edx, eax
mov dword [esp + 0x18], edx
jmp 0x41f4e2
push 1
call fcn.004288d0
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x14]
mov edx, dword [esi + 0x68]
add edx, eax
mov eax, dword [esi + 0x5c]
add eax, dword [0x4d602c]
sar edx, 0x10
cmp edx, eax
jl 0x41f5a2
mov al, byte [ebp + 2]
test al, al
jne 0x41f617
mov dl, byte [ebx + ecx]
test dl, dl
lea eax, [ebx + ecx]
je 0x41f5ed
mov ecx, dword [0x4d601c]
mov edx, dword [0x4d6020]
push ecx
mov ecx, dword [esi + 0x54]
push edx
mov edx, dword [esi + 0x20]
push ecx
mov ecx, dword [esi + 0x24]
push edx
mov edx, dword [esi + 0x28]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x2c]
push ecx
sar edx, 0x10
push edx
push eax
call fcn.0042bd30
mov eax, dword [esp + 0x34]
add esp, 0x24
add eax, 2
mov dword [esp + 0x10], eax
mov ecx, eax
cmp byte [ebx + ecx], 0
jne 0x41f5fa
mov al, byte [ebp + 2]
test al, al
je 0x41f60c
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 0x68]
add edx, eax
mov dword [esp + 0x14], edx
jmp 0x41f582
lea edi, [ecx - 1]
mov dword [esp + 0x10], 0
mov eax, dword [esi + 0x34]
test eax, eax
je 0x41f63a
cmp eax, 1
je 0x41f63a
mov edx, dword [0x4d6028]
add edx, dword [esi + 0x5c]
mov ecx, dword [0x4d602c]
mov dword [0x4d6028], edx
jmp 0x41f64f
mov ecx, dword [0x4d602c]
add ecx, dword [esi + 0x5c]
mov edx, dword [0x4d6028]
mov dword [0x4d602c], ecx
add edi, 2
test eax, eax
mov dword [0x4d1f48], ecx
mov dword [0x4d1f4c], edx
je 0x41f719
cmp eax, 1
je 0x41f719
mov eax, dword [0x4d6024]
lea ecx, [eax + ecx + 2]
mov dword [0x4d1f50], ecx
mov dword [0x4d1f54], edx
mov ebp, dword [esp + 0x1c]
mov edx, dword [0x4d6024]
mov eax, dword [0x4d6020]
mov ecx, dword [0x4d601c]
mov dword [esi + 0x80], edx
mov dword [esi + 0x8c], eax
mov dword [esi + 0x90], ecx
mov dword [esi + 0x74], edi
mov eax, dword [0x4d602c]
mov ecx, dword [0x4d6028]
mov edx, dword [0x4d6018]
mov dword [esi + 0x78], eax
mov eax, dword [0x4d6014]
mov dword [esi + 0x7c], ecx
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x88], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0x84], edx
mov edx, dword [esp + 0x18]
pop edi
mov dword [esi + 0x94], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0x9c], eax
mov dword [esi + 0x98], edx
pop esi
mov dword [ecx + 0x53e6e4], ebp
mov eax, ebp
pop ebp
pop ebx
mov ecx, dword [esp + 0xac]
xor ecx, esp
call fcn.00450905
add esp, 0xb0
ret
mov eax, dword [0x4d6024]
mov dword [0x4d1f50], ecx
lea ecx, [eax + edx + 2]
mov dword [0x4d1f54], ecx
jmp 0x41f684
cmp ebp, 5
je 0x41f755
cmp ebp, 6
je 0x41f755
cmp ebp, 4
jne 0x41f688
push 0x27
call fcn.00403a40
add esp, 4
jmp 0x41f6ae
cmp ebp, 6
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x80], edx
mov dword [esi + 0x8c], eax
mov dword [esi + 0x90], ecx
jne 0x41f6ab
mov edx, dword [esp + 0x20]
mov dword [edx + 0x53e6cc], 0
mov dword [esi + 0x74], 0
jmp 0x41f6ae
mov ecx, dword [esp + 0xb4]
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00450905
add esp, 0xb0
ret