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

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
mov esi, ecx
mov ebp, dword [esi + 0x80]
mov ebx, 0x64
mov eax, ebx
sub eax, ebp
mov ecx, eax
shl ecx, 5
sub ecx, eax
add ecx, ecx
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
cmp ebp, ebx
push edi
lea edi, [edx + eax + 0xc]
jne 0x4d1f4ea
xor edi, edi
lea ecx, [esp + 0x10]
push ecx
xor ebp, ebp
push 0x2c
mov ecx, 0x4ea5a58
mov dword [esp + 0x18], ebp
call fcn.04c50a90
mov eax, dword [esi + 0x98]
cmp eax, ebp
je 0x4d1f696
cmp eax, 4
mov ebp, dword [esi + 0x20]
mov ebx, dword [esi + 0x24]
je 0x4d1f569
cmp eax, 5
je 0x4d1f569
cmp eax, 6
je 0x4d1f569
cmp eax, 7
je 0x4d1f561
cmp eax, 8
je 0x4d1f561
cmp eax, 9
je 0x4d1f561
cmp eax, 0xa
je 0x4d1f559
cmp eax, 0xb
je 0x4d1f559
cmp eax, 0xc
je 0x4d1f559
cmp eax, 0xd
je 0x4d1f551
cmp eax, 0xe
je 0x4d1f551
cmp eax, 0xf
jne 0x4d1f56f
mov ebp, dword [esi + 0x40]
mov ebx, dword [esi + 0x44]
jmp 0x4d1f56f
mov ebp, dword [esi + 0x38]
mov ebx, dword [esi + 0x3c]
jmp 0x4d1f56f
mov ebp, dword [esi + 0x30]
mov ebx, dword [esi + 0x34]
jmp 0x4d1f56f
mov ebp, dword [esi + 0x28]
mov ebx, dword [esi + 0x2c]
movsx edx, word [0x4e83fea]
movsx eax, word [0x4e83fe8]
push 0
push 0
push 0
push 0
push 0
sub edx, 0xa
push edx
sub eax, 0xe
push eax
push 0x2c
push 0x2a
push 0x1d
push 0x80
push ebp
call fcn.04d46710
add esp, 0x30
cmp dword [esi + 0x80], 0x64
jge 0x4d1f5fb
movsx ecx, word [0x4e83fea]
movsx eax, word [0x4e83fe8]
push 0
push 0x80
push 0x80
push edi
push 0
lea edx, [ecx + edi - 0xa]
movzx ecx, byte [esi + 0x90]
push edx
movzx edx, byte [esi + 0x91]
sub eax, 0xe
push eax
movzx eax, byte [esi + 0x92]
push ecx
movzx ecx, byte [esi + 0x94]
push edx
push eax
push ecx
push ebp
call fcn.04d46710
add esp, 0x30
cmp dword [esi + 0x88], 0
jle 0x4d1f65c
cmp dword [esi + 0x94], 0xa
jle 0x4d1f65c
movsx edx, word [0x4e83fea]
movsx ecx, word [0x4e83fe8]
push 1
push 0x80
push 0x80
push edi
push 0
lea eax, [edx + edi - 0xa]
movzx edx, byte [esi + 0x8c]
push eax
movzx eax, byte [esi + 0x8d]
sub ecx, 0xe
push ecx
movzx ecx, byte [esi + 0x8e]
push edx
movzx edx, byte [esi + 0x88]
push eax
push ecx
push edx
push ebp
call fcn.04d46710
add esp, 0x30
movsx eax, word [0x4e83fea]
movsx ecx, word [0x4e83fe8]
push 1
push 0
push 0
push 0
push 0
sub eax, 0xa
push eax
sub ecx, 0xe
push ecx
push 0xff
push 0xff
push 0xff
push 0xff
push ebx
jmp 0x4d1fc5e
lea edx, [esp + 0x14]
push edx
push 0x18
mov ecx, 0x4ea5a58
mov dword [esp + 0x1c], ebp
call fcn.04c50a90
mov eax, dword [0x4e83f4c]
cmp eax, 3
jne 0x4d1f91b
mov eax, dword [esp + 0x14]
cmp word [eax + 4], bp
jne 0x4d1fad3
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
push edx
call fcn.04c89550
add esp, 4
cmp eax, ebp
je 0x4d1fc66
cmp byte [eax + 0x740], 0
push ebp
push ebp
push ebp
push ebp
push ebp
je 0x4d1f810
movsx eax, word [0x4e83fea]
movsx ecx, word [0x4e83fe8]
mov edx, dword [esi + 0x50]
sub eax, 0xa
push eax
sub ecx, 0xe
push ecx
push 0x2c
push 0x2a
push 0x1d
push 0x80
push edx
call fcn.04d46710
add esp, 0x30
cmp dword [esi + 0x80], ebx
jg 0x4d1f775
movsx eax, word [0x4e83fea]
movsx edx, word [0x4e83fe8]
push ebp
push 0x80
push 0x80
push edi
push ebp
lea ecx, [eax + edi - 0xa]
movzx eax, byte [esi + 0x90]
push ecx
movzx ecx, byte [esi + 0x91]
sub edx, 0xe
push edx
movzx edx, byte [esi + 0x92]
push eax
movzx eax, byte [esi + 0x94]
push ecx
mov ecx, dword [esi + 0x50]
push edx
push eax
push ecx
call fcn.04d46710
add esp, 0x30
cmp dword [esi + 0x88], ebp
jle 0x4d1f7d7
cmp dword [esi + 0x94], 0xa
jle 0x4d1f7d7
movsx edx, word [0x4e83fea]
movsx ecx, word [0x4e83fe8]
push 1
push 0x80
push 0x80
push edi
push ebp
lea eax, [edx + edi - 0xa]
movzx edx, byte [esi + 0x8c]
push eax
movzx eax, byte [esi + 0x8d]
sub ecx, 0xe
push ecx
movzx ecx, byte [esi + 0x8e]
push edx
movzx edx, byte [esi + 0x88]
push eax
mov eax, dword [esi + 0x50]
push ecx
push edx
push eax
call fcn.04d46710
add esp, 0x30
movsx ecx, word [0x4e83fea]
movsx edx, word [0x4e83fe8]
mov eax, dword [esi + 0x54]
push 1
push ebp
push ebp
push ebp
push ebp
sub ecx, 0xa
push ecx
sub edx, 0xe
push edx
push 0xff
push 0xff
push 0xff
push 0xff
push eax
jmp 0x4d1fc5e
movsx ecx, word [0x4e83fea]
movsx edx, word [0x4e83fe8]
mov eax, dword [esi + 0x48]
sub ecx, 0xa
push ecx
sub edx, 0xe
push edx
push 0x2c
push 0x2a
push 0x1d
push 0x80
push eax
call fcn.04d46710
add esp, 0x30
cmp dword [esi + 0x80], ebx
jg 0x4d1f895
movsx ecx, word [0x4e83fea]
movsx eax, word [0x4e83fe8]
push ebp
push 0x80
push 0x80
push edi
push ebp
lea edx, [ecx + edi - 0xa]
movzx ecx, byte [esi + 0x90]
push edx
movzx edx, byte [esi + 0x91]
sub eax, 0xe
push eax
movzx eax, byte [esi + 0x92]
push ecx
movzx ecx, byte [esi + 0x94]
push edx
mov edx, dword [esi + 0x48]
push eax
push ecx
push edx
call fcn.04d46710
add esp, 0x30
cmp dword [esi + 0x88], ebp
jle 0x4d1f8f7
cmp dword [esi + 0x94], 0xa
jle 0x4d1f8f7
movsx eax, word [0x4e83fea]
movsx edx, word [0x4e83fe8]
push 1
push 0x80
push 0x80
push edi
push ebp
lea ecx, [eax + edi - 0xa]
movzx eax, byte [esi + 0x8c]
push ecx
movzx ecx, byte [esi + 0x8d]
sub edx, 0xe
push edx
movzx edx, byte [esi + 0x8e]
push eax
movzx eax, byte [esi + 0x88]
push ecx
mov ecx, dword [esi + 0x48]
push edx
push eax
push ecx
call fcn.04d46710
add esp, 0x30
movsx edx, word [0x4e83fea]
movsx eax, word [0x4e83fe8]
mov ecx, dword [esi + 0x4c]
push 1
push ebp
push ebp
push ebp
push ebp
sub edx, 0xa
push edx
sub eax, 0xe
push eax
jmp 0x4d1fc49
cmp eax, 0xc
jne 0x4d1fad3
mov ecx, dword [0x4e83f6c]
mov eax, dword [ecx + 0x50]
test eax, eax
mov edx, dword [esp + 0x10]
mov ebp, dword [edx]
je 0x4d1f95b
cmp byte [eax + 0x508], 0
je 0x4d1f95b
lea ebp, [ecx + 0xfbd0]
call fcn.04b77130
movsx eax, al
imul eax, eax, 0x1c0
mov ebp, dword [eax + ebp + 0x14]
mov ebp, dword [ebp + 0x78]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4d1f96e
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp ebp, eax
jb 0x4d1f974
nop
call 0x7c1e8a94
movsx ecx, word [0x4e83fea]
movsx edx, word [0x4e83fe8]
mov eax, dword [esi + 4]
push 0
push 0
push 0
push 0
push 0
sub ecx, 0xa
push ecx
mov ecx, dword [eax + ebp*4]
sub edx, 0xe
push edx
push 0x2c
push 0x2a
push 0x1d
push 0x80
push ecx
call fcn.04d46710
add esp, 0x30
cmp dword [esi + 0x80], ebx
jg 0x4d1fa0f
push ebp
mov ecx, esi
call fcn.04da0e10
movsx edx, word [0x4e83fea]
mov eax, dword [eax]
push 0
push 0x80
push 0x80
push edi
lea ecx, [edx + edi - 0xa]
movsx edx, word [0x4e83fe8]
push 0
push ecx
movzx ecx, byte [esi + 0x90]
sub edx, 0xe
push edx
movzx edx, byte [esi + 0x91]
push ecx
movzx ecx, byte [esi + 0x92]
push edx
movzx edx, byte [esi + 0x94]
push ecx
push edx
push eax
call fcn.04d46710
add esp, 0x30
cmp dword [esi + 0x88], 0
jle 0x4d1fa7a
cmp dword [esi + 0x94], 0xa
jle 0x4d1fa7a
push ebp
mov ecx, esi
call fcn.04da0e10
movsx ecx, word [0x4e83fea]
push 1
push 0x80
push 0x80
push edi
lea edx, [ecx + edi - 0xa]
movsx ecx, word [0x4e83fe8]
push 0
push edx
movzx edx, byte [esi + 0x8c]
sub ecx, 0xe
push ecx
movzx ecx, byte [esi + 0x8d]
push edx
movzx edx, byte [esi + 0x8e]
push ecx
movzx ecx, byte [esi + 0x88]
push edx
mov edx, dword [eax]
push ecx
push edx
call fcn.04d46710
add esp, 0x30
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x4d1fa8d
mov eax, dword [esi + 0x18]
sub eax, ecx
sar eax, 2
cmp ebp, eax
jb 0x4d1fa93
nop
call 0x7c1e8a94
movsx eax, word [0x4e83fea]
movsx ecx, word [0x4e83fe8]
mov edx, dword [esi + 0x14]
push 1
push 0
push 0
push 0
push 0
sub eax, 0xa
push eax
mov eax, dword [edx + ebp*4]
sub ecx, 0xe
push ecx
push 0xff
push 0xff
push 0xff
push 0xff
push eax
jmp 0x4d1fc5e
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4d1faec
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp ebp, eax
jb 0x4d1faf2
nop
call 0x7c1e8a94
movsx edx, word [0x4e83fea]
movsx eax, word [0x4e83fe8]
mov ecx, dword [esi + 4]
push 0
push 0
push 0
push 0
push 0
sub edx, 0xa
push edx
mov edx, dword [ecx + ebp*4]
sub eax, 0xe
push eax
push 0x2c
push 0x2a
push 0x1d
push 0x80
push edx
call fcn.04d46710
add esp, 0x30
cmp dword [esi + 0x80], ebx
jg 0x4d1fb93
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.04da0e10
movsx edx, word [0x4e83fea]
mov eax, dword [eax]
push 0
push 0x80
push 0x80
push edi
lea ecx, [edx + edi - 0xa]
movsx edx, word [0x4e83fe8]
push 0
push ecx
movzx ecx, byte [esi + 0x90]
sub edx, 0xe
push edx
movzx edx, byte [esi + 0x91]
push ecx
movzx ecx, byte [esi + 0x92]
push edx
movzx edx, byte [esi + 0x94]
push ecx
push edx
push eax
call fcn.04d46710
add esp, 0x30
cmp dword [esi + 0x88], 0
jle 0x4d1fc04
cmp dword [esi + 0x94], 0xa
jle 0x4d1fc04
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
push edx
mov ecx, esi
call fcn.04da0e10
movsx ecx, word [0x4e83fea]
push 1
push 0x80
push 0x80
push edi
lea edx, [ecx + edi - 0xa]
movsx ecx, word [0x4e83fe8]
push 0
push edx
movzx edx, byte [esi + 0x8c]
sub ecx, 0xe
push ecx
movzx ecx, byte [esi + 0x8d]
push edx
movzx edx, byte [esi + 0x8e]
push ecx
movzx ecx, byte [esi + 0x88]
push edx
mov edx, dword [eax]
push ecx
push edx
call fcn.04d46710
add esp, 0x30
mov ecx, dword [esi + 0x14]
test ecx, ecx
mov eax, dword [esp + 0x10]
mov edi, dword [eax]
je 0x4d1fc1d
mov eax, dword [esi + 0x18]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x4d1fc23
nop
call 0x7c1e8a94
movsx ecx, word [0x4e83fea]
movsx edx, word [0x4e83fe8]
mov eax, dword [esi + 0x14]
push 1
push 0
push 0
push 0
sub ecx, 0xa
push 0
push ecx
mov ecx, dword [eax + edi*4]
sub edx, 0xe
push edx
push 0xff
push 0xff
push 0xff
push 0xff
push ecx
call fcn.04d46710
add esp, 0x30
movsx edx, word [0x4e83fea]
movsx eax, word [0x4e83fe8]
mov ecx, dword [esi + 0x58]
push 0
push 0
push 0
push 0
push 0
add edx, 0x2b
push edx
add eax, 0x5d
push eax
push 0xff
push 0xff
push 0xff
push 0xff
push ecx
call fcn.04d46710
movsx edx, word [0x4e83fea]
movsx eax, word [0x4e83fe8]
mov ecx, dword [esi + 0x5c]
push 0
push 0
push 0
push 0
push 0
add edx, 0x15
push edx
add eax, 0x5d
push eax
push 0xff
push 0xff
push 0xff
push 0xff
push ecx
call fcn.04d46710
add esp, 0x60
cmp byte [esi + 0x7c], 0
je 0x4d1fd29
movsx edx, word [0x4e83fea]
movsx eax, word [0x4e83fe8]
mov ecx, dword [esi + 0x78]
push 0
push 0x1a
push 0x49
push 0
push 0
sub edx, 8
push edx
add eax, 0x5c
push eax
push 0xff
push 0xff
push 0xff
push 0xff
push ecx
call fcn.04d46710
add esp, 0x30
cmp byte [esi + 0x7d], 0
je 0x4d1fd6f
movsx edx, word [0x4e83fea]
movsx eax, word [0x4e83fe8]
mov ecx, dword [esi + 0x78]
push 0
push 0x1a
push 0x49
push 0x1a
push 0
sub edx, 8
push edx
add eax, 0x5c
push eax
push 0xff
push 0xff
push 0xff
push 0xff
push ecx
call fcn.04d46710
add esp, 0x30
mov eax, dword [0x4e83f4c]
cmp eax, 5
je 0x4d1fe1f
cmp eax, 0xc
je 0x4d1fe1f
movzx eax, word [0x4e83fee]
add ax, word [0x4e83fea]
mov edx, dword [esi + 0x80]
push 0
push 0xff
push 0xff
push 0xff
push 0xff
push 1
push 0xc
push edx
mov edx, dword [0x4e83fec]
movsx ecx, ax
mov eax, dword [0x4e83fe8]
push ecx
add edx, eax
movsx ecx, dx
lea edi, [esi + 0x60]
push ecx
mov ecx, edi
call fcn.04d47d10
movzx eax, word [0x4e83fee]
add ax, word [0x4e83fea]
mov edx, dword [esi + 0x84]
push 0
push 0xff
push 0xff
push 0xff
push 0xff
push 1
push 0xc
movsx ecx, ax
mov eax, dword [0x4e83fe8]
push edx
mov edx, dword [0x4e83fec]
sub ecx, 0x16
add edx, eax
push ecx
movsx ecx, dx
jmp 0x4d1feb9
movzx eax, word [0x4e83fee]
add ax, word [0x4e83fea]
mov edx, dword [esi + 0x80]
push 0
push 0xff
push 0xff
push 0xff
push 0xff
push 1
push 0xc
push edx
mov edx, dword [0x4e83fec]
movsx ecx, ax
mov eax, dword [0x4e83fe8]
push ecx
add edx, eax
movsx ecx, dx
add ecx, 0x18
lea edi, [esi + 0x60]
push ecx
mov ecx, edi
call fcn.04d47d10
movzx eax, word [0x4e83fee]
add ax, word [0x4e83fea]
mov edx, dword [esi + 0x84]
push 0
push 0xff
push 0xff
push 0xff
push 0xff
push 1
push 0xc
movsx ecx, ax
mov eax, dword [0x4e83fe8]
push edx
mov edx, dword [0x4e83fec]
sub ecx, 0x16
add edx, eax
push ecx
movsx ecx, dx
add ecx, 0x18
push ecx
mov ecx, edi
call fcn.04d47d10
cmp dword [0x4e83f4c], 0xb
jne 0x4d1ff85
mov edx, dword [0x4e83f6c]
cmp dword [edx + 0x50], 0
je 0x4d1ff85
mov ax, word [0x4e83fee]
fld1
add ax, word [0x4e83fea]
mov edx, dword [0x4e83fec]
push ecx
fstp dword [esp]
push 0xff
push 0xff
movsx ecx, ax
mov eax, dword [0x4e83fe8]
push 0xff
sub ecx, 0x19
push 0xff
push ecx
add edx, eax
movsx ecx, dx
sub ecx, 0x55
lea edi, [esi + 0x6c]
push ecx
mov ecx, edi
call fcn.04d48290
mov edx, dword [0x4e83f6c]
mov eax, dword [edx + 0x50]
mov ecx, dword [eax + 0x578]
mov dx, word [0x4e83fee]
add dx, word [0x4e83fea]
push 0
push 0xff
push 0xff
push 0xff
push 0xff
push 1
push 0xc
push ecx
mov ecx, dword [0x4e83fec]
movsx eax, dx
mov edx, dword [0x4e83fe8]
sub eax, 0x19
push eax
add ecx, edx
movsx eax, cx
sub eax, 0x46
push eax
mov ecx, edi
call fcn.04d47d10
cmp byte [esi + 0xa0], 0
je 0x4d1ffd1
movsx ecx, word [0x4e83fea]
movsx edx, word [0x4e83fe8]
mov eax, dword [esi + 0x9c]
push 0
push 0x1a
push 0x63
push 0
push 0
sub ecx, 8
push ecx
add edx, 0x5c
push edx
push 0xff
push 0xff
push 0xff
push 0xff
push eax
call fcn.04d46710
add esp, 0x30
mov ebp, dword [0x4e0c4bc]
call ebp
mov esi, dword [esi + 0x80]
cmp esi, 0x14
mov edi, eax
jge 0x4d20045
mov ecx, dword [0x4e83f6c]
mov eax, dword [ecx + 0x50]
test eax, eax
je 0x4d20045
cmp byte [eax + 0x300], 0
jne 0x4d20045
test esi, esi
je 0x4d20045
cmp byte [0x4e7cc50], 0
je 0x4d20017
call ebp
mov dword [0x55ce7e0], eax
mov byte [0x4e7cc50], 0
sub edi, dword [0x55ce7e0]
mov ecx, dword [0x55cdb88]
cmp edi, 0x1f40
jae 0x4d20038
call fcn.04cffb60
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
call fcn.04cfe410
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
pop edi
pop esi
pop ebp
mov byte [0x4e7cc50], 1
pop ebx
add esp, 8
ret