Function at 0x4d2ff0
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55c9f0
mov eax, dword fs:[0]
push eax
sub esp, 0x74
push ebx
push esi
push edi
mov eax, dword [0x58829c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x24], esi
mov eax, dword [0x58d464]
mov eax, dword [eax + 0x154]
push eax
mov edx, dword [eax]
mov eax, dword [edx + 0xc0]
call eax
movss xmm0, dword [0x577514]
fstp dword [ebp - 0x30]
movss xmm1, dword [ebp - 0x30]
addss xmm1, dword [esi]
comiss xmm0, xmm1
movss dword [esi], xmm1
ja case.0x4d457f.1456
cmp dword [esi + 0x1c], 0
je case.0x4d457f.1456
mov eax, dword [0x58d464]
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x168]
test eax, eax
je 0x4d3083
cmp dword [esi + 0x14], 0
je 0x4d3083
mov ecx, esi
call fcn.004d5660
mov eax, dword [0x58d464]
push 2
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x174]
test al, al
jne 0x4d30b7
mov eax, dword [0x58d464]
push 1
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x174]
test al, al
je 0x4d30df
mov dword [0x5882e8], 0xffffffff
mov dword [0x5882e0], 0xffffffff
mov dword [0x5882e4], 0xffffffff
mov dword [0x5882dc], 0xffffffff
mov dword [ebp - 0x70], vtable.phVector2d.0
mov dword [ebp - 4], 0
lea edx, [ebp - 0x68]
mov eax, dword [0x58d464]
push edx
lea edx, [ebp - 0x6c]
push edx
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x158]
mov eax, dword [esi + 0x5c]
test eax, eax
mov ebx, dword [esi + 0x1c]
cmove ebx, ebx
mov dword [ebp - 0x18], ebx
cmp eax, 1
jne 0x4d3122
mov ebx, dword [esi + 0x20]
mov dword [ebp - 0x18], ebx
cmp eax, 2
jne 0x4d312d
mov ebx, dword [esi + 0x24]
mov dword [ebp - 0x18], ebx
cmp eax, 3
jne 0x4d3138
mov ebx, dword [esi + 0x28]
mov dword [ebp - 0x18], ebx
cmp eax, 4
jne 0x4d3143
mov ebx, dword [esi + 0x2c]
mov dword [ebp - 0x18], ebx
cmp eax, 5
jne 0x4d314e
mov ebx, dword [esi + 0x30]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x4c], vtable.phVector2d.0
lea eax, [ebp - 0x4c]
mov byte [ebp - 4], 1
push eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
call fcn.004d1520
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x24c]
cmp eax, 0x40c
je 0x4d31b1
cmp eax, 0x40e
je 0x4d31b1
cmp eax, 0x40f
je 0x4d31b1
cmp eax, 0x40d
je 0x4d31b1
cmp eax, 0x3ff
je 0x4d31b1
cmp eax, 0x400
je 0x4d31b1
cmp eax, 0x401
je 0x4d31b1
cmp eax, 0x402
jne 0x4d31bd
lea eax, [ebp - 0x4c]
push eax
call fcn.004d1d70
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x24c]
cmp eax, 0x421
je 0x4d31f4
cmp eax, 0x422
je 0x4d31f4
cmp eax, 0x7d4
je 0x4d31f4
cmp eax, 0x7d6
je 0x4d31f4
cmp eax, 0x7d8
je 0x4d31f4
cmp eax, 0x7da
je 0x4d31f4
cmp eax, 0x7dc
jne 0x4d3200
lea eax, [ebp - 0x4c]
push eax
call fcn.004d2180
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x24c]
cmp eax, 0x425
je 0x4d321b
cmp eax, 0x1770
je 0x4d321b
cmp eax, 0x1771
jne 0x4d3227
lea eax, [ebp - 0x4c]
push eax
call fcn.004d1960
mov dword [ebp - 0x28], eax
mov eax, dword [0x58d464]
push 1
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x178]
mov ecx, dword [0x58d464]
mov bl, al
push 2
mov byte [ebp - 0xd], bl
mov ecx, dword [ecx + 0x154]
push ecx
mov edx, dword [ecx]
call dword [edx + 0x178]
mov byte [ebp - 0xe], al
test bl, bl
jne 0x4d3268
test al, al
je case.0x4d457f.1456
mov eax, dword [esi + 0x1c]
test eax, eax
je case.0x4d457f.1456
mov eax, dword [eax + 0x30]
cmp eax, 1
je case.0x4d457f.1456
cmp eax, 2
je case.0x4d457f.1456
mov eax, dword [esi + 0x20]
test eax, eax
je 0x4d32a4
mov eax, dword [eax + 0x30]
cmp eax, 1
je case.0x4d457f.1456
cmp eax, 2
je case.0x4d457f.1456
mov eax, dword [esi + 0x24]
test eax, eax
je 0x4d32c0
mov eax, dword [eax + 0x30]
cmp eax, 1
je case.0x4d457f.1456
cmp eax, 2
je case.0x4d457f.1456
mov eax, dword [esi + 0x28]
test eax, eax
je 0x4d32dc
mov eax, dword [eax + 0x30]
cmp eax, 1
je case.0x4d457f.1456
cmp eax, 2
je case.0x4d457f.1456
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x4d32f8
mov eax, dword [eax + 0x30]
cmp eax, 1
je case.0x4d457f.1456
cmp eax, 2
je case.0x4d457f.1456
mov eax, dword [esi + 0x30]
test eax, eax
je 0x4d3314
mov eax, dword [eax + 0x30]
cmp eax, 1
je case.0x4d457f.1456
cmp eax, 2
je case.0x4d457f.1456
mov dword [ebp - 0x40], vtable.phVector2d.0
mov byte [ebp - 4], 2
lea edx, [ebp - 0x38]
mov eax, dword [0x58d464]
push edx
lea edx, [ebp - 0x3c]
push edx
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x158]
mov ecx, esi
call fcn.004d5660
test al, al
jne case.0x4d457f.1456
mov edi, dword [ebp + 8]
movss xmm0, dword [ebp - 0x3c]
movss xmm1, dword [ebp - 0x38]
mov dword [ebp - 0x58], vtable.phVector2d.0
subss xmm0, dword [edi + 0x224]
subss xmm1, dword [edi + 0x228]
divss xmm0, dword [edi + 0x26c]
divss xmm1, dword [edi + 0x270]
movss dword [ebp - 0x3c], xmm0
movss dword [ebp - 0x30], xmm1
movss dword [ebp - 0x38], xmm1
mov byte [ebp - 4], 3
call fcn.004351d0
movss xmm0, dword [ebp - 0x30]
mov esi, eax
call fcn.004351d0
mov ebx, eax
mov eax, dword [edi + 0x274]
dec eax
cmp esi, 1
jge 0x4d33b7
mov esi, 1
jmp 0x4d33bc
cmp esi, eax
cmovg esi, eax
mov eax, dword [edi + 0x278]
dec eax
mov dword [ebp - 0x1c], esi
cmp ebx, 1
jge 0x4d33d2
mov ebx, 1
jmp 0x4d33d7
cmp ebx, eax
cmovg ebx, eax
movd xmm0, esi
lea eax, [ebp - 0x64]
cvtdq2ps xmm0, xmm0
push eax
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x64], vtable.phVector2d.0
push eax
lea ecx, [edi + 0x220]
mulss xmm0, dword [edi + 0x26c]
movss dword [ebp - 0x60], xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [edi + 0x270]
movss dword [ebp - 0x5c], xmm0
call fcn.00441d60
mov dword [ebp - 0x14], 0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0x54], xmm0
movss xmm0, dword [eax + 8]
xor eax, eax
movss dword [ebp - 0x50], xmm0
mov dword [ebp - 0x20], eax
cmp dword [edi + 0x188], eax
jle 0x4d34a1
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e0510
test al, al
jne 0x4d348b
push dword [ebp - 0x20]
lea eax, [ebx - 1]
lea ecx, [esi - 1]
push eax
push ecx
mov ecx, edi
call fcn.004e0510
test al, al
jne 0x4d348b
push dword [ebp - 0x20]
lea eax, [ebx - 1]
mov ecx, edi
push eax
push esi
call fcn.004e0510
test al, al
jne 0x4d348b
push dword [ebp - 0x20]
lea eax, [esi - 1]
mov ecx, edi
push ebx
push eax
call fcn.004e0510
test al, al
je 0x4d3492
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, dword [edi + 0x188]
jl 0x4d3441
cmp byte [ebp + 0xc], 0
je 0x4d360f
mov eax, dword [0x58d464]
lea edx, [ebp - 0x38]
push edx
lea edx, [ebp - 0x3c]
push edx
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x158]
movss xmm0, dword [ebp - 0x3c]
lea ecx, [edi + 0x220]
subss xmm0, dword [ecx + 4]
movss xmm1, dword [ebp - 0x38]
subss xmm1, dword [ecx + 8]
divss xmm0, dword [edi + 0x280]
divss xmm1, dword [edi + 0x284]
cvttss2si eax, xmm0
movss dword [ebp - 0x3c], xmm0
movss dword [ebp - 0x38], xmm1
lea esi, [eax*2 + 1]
cvttss2si eax, xmm1
lea ebx, [eax*2 + 1]
mov eax, dword [edi + 0x274]
dec eax
cmp esi, 1
jge 0x4d3524
mov esi, 1
jmp 0x4d3529
cmp esi, eax
cmovg esi, eax
mov eax, dword [edi + 0x278]
dec eax
mov dword [ebp - 0x1c], esi
cmp ebx, 1
jge 0x4d353f
mov ebx, 1
jmp 0x4d3544
cmp ebx, eax
cmovg ebx, eax
movd xmm0, esi
lea eax, [ebp - 0x64]
cvtdq2ps xmm0, xmm0
push eax
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x64], vtable.phVector2d.0
push eax
mulss xmm0, dword [edi + 0x26c]
movss dword [ebp - 0x60], xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [edi + 0x270]
movss dword [ebp - 0x5c], xmm0
call fcn.00441d60
xor edx, edx
mov dword [ebp - 0x14], edx
movss xmm0, dword [eax + 4]
movss dword [ebp - 0x54], xmm0
movss xmm0, dword [eax + 8]
xor eax, eax
movss dword [ebp - 0x50], xmm0
mov dword [ebp + 0xc], eax
cmp dword [edi + 0x188], eax
jle 0x4d3612
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e0510
test al, al
jne 0x4d35f0
push dword [ebp + 0xc]
lea eax, [ebx - 1]
lea ecx, [esi - 1]
push eax
push ecx
mov ecx, edi
call fcn.004e0510
test al, al
jne 0x4d35f0
push dword [ebp + 0xc]
lea eax, [ebx - 1]
mov ecx, edi
push eax
push esi
call fcn.004e0510
test al, al
jne 0x4d35f0
push dword [ebp + 0xc]
lea eax, [esi - 1]
mov ecx, edi
push ebx
push eax
call fcn.004e0510
test al, al
je 0x4d35fb
mov eax, dword [ebp + 0xc]
lea edx, [eax + 1]
mov dword [ebp - 0x14], edx
jmp 0x4d3601
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
cmp eax, dword [edi + 0x188]
jl 0x4d35a6
jmp 0x4d3612
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov cl, byte [eax + 0xc]
mov byte [ebp + 0xf], cl
test cl, cl
je 0x4d3625
mov edx, dword [eax + 8]
mov dword [ebp - 0x14], edx
cmp edx, dword [edi + 0x1dc]
jge case.0x4d457f.1456
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x24c]
mov dword [ebp - 0x20], eax
cmp eax, 0x3e9
jg 0x4d368e
je case.0x4d457f.1456
cmp eax, 0xd1
jg 0x4d3670
je case.0x4d457f.1450
cmp eax, 0xd0
ja case.0x4d457f.1456
movzx eax, byte [eax + 0x4d53ec]
jmp dword [eax*4 + 0x4d53e4]
sub eax, 0xd2
cmp eax, 0xc8
ja case.0x4d457f.1456
movzx eax, byte [eax + 0x4d54c8]
jmp dword [eax*4 + 0x4d54c0]
cmp eax, 0x57d
jg 0x4d4547
cmp eax, 0x578
jge case.0x4d36b9.1048
sub eax, 0x3eb
cmp eax, 0x49
ja case.0x4d457f.1456
movzx eax, byte [eax + 0x4d55c0]
jmp dword [eax*4 + 0x4d5594]
cmp byte [ebp + 0xf], 0
je 0x4d36c9
push edx
jmp 0x4d36d5
test edx, edx
jle case.0x4d457f.1456
lea eax, [edx - 1]
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e0000
test eax, eax
je case.0x4d457f.1456
cmp byte [ebp - 0xd], 0
je 0x4d36f3
mov byte [eax + 0xc2], 1
cmp byte [ebp - 0xe], 0
je case.0x4d457f.1456
mov byte [eax + 0xc2], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp + 0xf], 0
je 0x4d3721
push edx
jmp 0x4d372d
test edx, edx
jle case.0x4d457f.1456
lea eax, [edx - 1]
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e0000
test eax, eax
je case.0x4d457f.1456
cmp byte [ebp - 0xd], 0
je 0x4d374b
mov byte [eax + 0xc8], 1
cmp byte [ebp - 0xe], 0
je case.0x4d457f.1456
mov byte [eax + 0xc8], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov al, byte [ebp + 0xf]
test al, al
jne 0x4d3886
test edx, edx
jle 0x4d394c
lea eax, [edx - 1]
mov ecx, edi
push eax
push ebx
push esi
call fcn.004e0000
mov dword [ebp + 8], eax
test eax, eax
je 0x4d3949
mov ebx, eax
cmp dword [ebx + 0x20], 0xd7
jne 0x4d37bf
cmp byte [ebp - 0xd], 0
je 0x4d37e1
cmp dword [ebx + 0x224], 0xffffffff
jne 0x4d37e1
push ebx
mov ecx, edi
call fcn.004e3390
jmp 0x4d37e1
cmp byte [ebp - 0xd], 0
je 0x4d37e1
mov eax, dword [ebx + 0x8c]
push ecx
inc eax
mov ecx, edi
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e3120
cmp byte [ebp - 0xe], 0
je case.0x4d457f.1456
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5e20
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5ed0
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5f60
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5d00
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5d90
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push edx
push ebx
push esi
mov ecx, edi
call fcn.004e0000
mov edx, dword [ebp - 0x14]
mov ecx, eax
test edx, edx
js 0x4d3949
test ecx, ecx
je 0x4d3949
cmp dword [ecx + 0x20], 0xd7
jne 0x4d38c7
cmp byte [ebp - 0xd], 0
je 0x4d38ec
cmp dword [ecx + 0x224], 0xffffffff
jne 0x4d38ec
push ecx
mov ecx, edi
call fcn.004e3390
jmp 0x4d38e9
cmp byte [ebp - 0xd], 0
je 0x4d38ec
mov eax, dword [ecx + 0x8c]
push ecx
inc eax
push eax
push dword [ecx + 0x88]
push dword [ecx + 0x80]
mov ecx, edi
call fcn.004e3120
mov edx, dword [ebp - 0x14]
cmp byte [ebp - 0xe], 0
je case.0x4d457f.1456
lea esi, [edx + 1]
mov ecx, edi
push esi
push ebx
push dword [ebp - 0x1c]
call fcn.004e5e20
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5ed0
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5f60
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5d00
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5d90
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov al, byte [ebp + 0xf]
cmp byte [ebp - 0xd], 0
je 0x4d397d
test al, al
jne 0x4d3970
mov eax, dword [0x58d464]
push 1
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
test al, al
je 0x4d397d
push ecx
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e3120
cmp byte [ebp - 0xe], 0
je case.0x4d457f.1456
mov ecx, dword [ebp - 0x24]
cmp byte [ecx + 0xc], 0
je 0x4d39de
mov eax, dword [ebp - 0x14]
test eax, eax
js 0x4d39d4
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e5e20
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5ed0
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5f60
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5d00
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5d90
mov ecx, dword [ebp - 0x24]
cmp byte [ecx + 0xc], 0
jne case.0x4d457f.1456
mov eax, dword [0x58d464]
push 2
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
test al, al
je case.0x4d457f.1456
mov eax, dword [ebp - 0x14]
test eax, eax
js case.0x4d457f.1456
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e5e20
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5ed0
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5f60
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5d00
push dword [ebp - 0x14]
push ebx
push esi
mov ecx, edi
call fcn.004e5d90
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov al, byte [ebp + 0xf]
test al, al
jne 0x4d3b5c
test edx, edx
jle 0x4d3bf2
lea eax, [edx - 1]
mov ecx, edi
push eax
push ebx
push esi
call fcn.004e0000
mov dword [ebp + 8], eax
test eax, eax
je 0x4d3bef
mov ebx, eax
cmp dword [ebx + 0x20], 0xd7
jne 0x4d3aa8
cmp byte [ebp - 0xd], 0
je 0x4d3acd
cmp dword [ebx + 0x224], 0xffffffff
jne 0x4d3acd
mov ecx, dword [ebp - 0x20]
push ecx
push ebx
mov ecx, edi
call fcn.004e3760
jmp 0x4d3acd
cmp byte [ebp - 0xd], 0
je 0x4d3acd
mov eax, dword [ebx + 0x8c]
mov ecx, dword [ebp - 0x20]
inc eax
push ecx
push eax
push dword [ebx + 0x88]
mov ecx, edi
push dword [ebx + 0x80]
call fcn.004e3660
cmp byte [ebp - 0xe], 0
je case.0x4d457f.1456
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5ed0
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5e20
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5f60
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5d00
mov eax, dword [ebx + 0x8c]
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
jmp 0x4d3a3a
push edx
push ebx
push esi
mov ecx, edi
call fcn.004e0000
mov edx, dword [ebp - 0x14]
mov dword [ebp + 8], eax
test edx, edx
js 0x4d3bef
test eax, eax
je 0x4d3bef
cmp dword [eax + 0x20], 0xd7
jne 0x4d3b9a
cmp byte [ebp - 0xd], 0
je 0x4d3bc5
cmp dword [eax + 0x224], 0xffffffff
jne 0x4d3bc5
mov ecx, dword [ebp - 0x20]
push ecx
push eax
mov ecx, edi
call fcn.004e3760
jmp 0x4d3bc2
cmp byte [ebp - 0xd], 0
je 0x4d3bc5
mov eax, dword [eax + 0x8c]
mov ecx, dword [ebp - 0x20]
inc eax
push ecx
push eax
mov eax, dword [ebp + 8]
mov ecx, edi
push dword [eax + 0x88]
push dword [eax + 0x80]
call fcn.004e3660
mov edx, dword [ebp - 0x14]
cmp byte [ebp - 0xe], 0
je case.0x4d457f.1456
lea esi, [edx + 1]
mov ecx, edi
push esi
push ebx
push dword [ebp - 0x1c]
call fcn.004e5ed0
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5e20
jmp 0x4d3911
mov al, byte [ebp + 0xf]
cmp byte [ebp - 0xd], 0
je 0x4d3c2b
test al, al
jne 0x4d3c16
mov eax, dword [0x58d464]
push 1
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
test al, al
je 0x4d3c2b
mov ecx, dword [ebp - 0x18]
push dword [ecx + 0x24c]
mov ecx, edi
push dword [ebp - 0x14]
push ebx
push esi
call fcn.004e3660
cmp byte [ebp - 0xe], 0
je case.0x4d457f.1456
mov ecx, dword [ebp - 0x24]
cmp byte [ecx + 0xc], 0
je 0x4d3c8c
mov eax, dword [ebp - 0x14]
test eax, eax
js 0x4d3c82
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e5ed0
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5e20
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5f60
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5d00
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5d90
mov ecx, dword [ebp - 0x24]
cmp byte [ecx + 0xc], 0
jne case.0x4d457f.1456
mov eax, dword [0x58d464]
push 2
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
test al, al
je case.0x4d457f.1456
mov eax, dword [ebp - 0x14]
test eax, eax
js case.0x4d457f.1456
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e5ed0
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5e20
jmp 0x4d3a1d
mov eax, dword [ebp - 0x20]
cmp eax, 0x3ff
je 0x4d3cef
cmp eax, 0x400
je 0x4d3cef
cmp eax, 0x401
je 0x4d3cef
cmp eax, 0x402
jne 0x4d3d33
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x4d3d02
mov dword [ecx + 0x24c], 0x3ff
jmp 0x4d3d33
cmp eax, 1
jne 0x4d3d13
mov dword [ecx + 0x24c], 0x401
jmp 0x4d3d33
cmp eax, 2
jne 0x4d3d24
mov dword [ecx + 0x24c], 0x400
jmp 0x4d3d33
cmp eax, 3
jne 0x4d3d33
mov dword [ecx + 0x24c], 0x402
mov eax, dword [ebp - 0x24]
mov al, byte [eax + 0xc]
mov byte [ebp + 0xf], al
test al, al
jne 0x4d3e51
test edx, edx
jle 0x4d3ee5
lea eax, [edx - 1]
mov ecx, edi
push eax
push ebx
push esi
call fcn.004e0000
mov dword [ebp + 8], eax
test eax, eax
je 0x4d3ee2
mov ebx, eax
cmp dword [ebx + 0x20], 0xd7
jne 0x4d3d91
cmp byte [ebp - 0xd], 0
je 0x4d3dbb
cmp dword [ebx + 0x224], 0xffffffff
jne 0x4d3dbb
mov ecx, dword [ebp - 0x18]
push dword [ecx + 0x24c]
mov ecx, edi
push ebx
call fcn.004e3a80
jmp 0x4d3dbb
cmp byte [ebp - 0xd], 0
je 0x4d3dbb
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 0x8c]
inc eax
push dword [ecx + 0x24c]
mov ecx, edi
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e3980
cmp byte [ebp - 0xe], 0
je 0x4d53c1
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5d90
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5ed0
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5e20
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5f60
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5d00
jmp 0x4d53c1
push edx
push ebx
push esi
mov ecx, edi
call fcn.004e0000
mov edx, dword [ebp - 0x14]
mov dword [ebp + 8], eax
test edx, edx
js 0x4d3ee2
test eax, eax
je 0x4d3ee2
cmp dword [eax + 0x20], 0xd7
jne 0x4d3e94
cmp byte [ebp - 0xd], 0
je 0x4d3ec4
cmp dword [eax + 0x224], 0xffffffff
jne 0x4d3ec4
mov ecx, dword [ebp - 0x18]
push dword [ecx + 0x24c]
mov ecx, edi
push eax
call fcn.004e3a80
jmp 0x4d3ec1
cmp byte [ebp - 0xd], 0
je 0x4d3ec4
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax + 0x8c]
inc eax
push dword [ecx + 0x24c]
mov ecx, edi
push eax
mov eax, dword [ebp + 8]
push dword [eax + 0x88]
push dword [eax + 0x80]
call fcn.004e3980
mov edx, dword [ebp - 0x14]
cmp byte [ebp - 0xe], 0
je 0x4d53c1
lea esi, [edx + 1]
mov ecx, edi
push esi
push ebx
push dword [ebp - 0x1c]
call fcn.004e5d90
jmp 0x4d3fb6
mov al, byte [ebp + 0xf]
cmp byte [ebp - 0xd], 0
je 0x4d3f1e
test al, al
jne 0x4d3f09
mov eax, dword [0x58d464]
push 1
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
test al, al
je 0x4d3f1e
mov ecx, dword [ebp - 0x18]
push dword [ecx + 0x24c]
mov ecx, edi
push dword [ebp - 0x14]
push ebx
push esi
call fcn.004e3980
cmp byte [ebp - 0xe], 0
je 0x4d53c1
mov ecx, dword [ebp - 0x24]
cmp byte [ecx + 0xc], 0
je 0x4d3f7f
mov eax, dword [ebp - 0x14]
test eax, eax
js 0x4d3f75
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e5d90
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5ed0
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5e20
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5f60
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5d00
mov ecx, dword [ebp - 0x24]
cmp byte [ecx + 0xc], 0
jne 0x4d53c1
mov eax, dword [0x58d464]
push 2
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
test al, al
je 0x4d53c1
mov eax, dword [ebp - 0x14]
test eax, eax
js 0x4d53c1
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e5d90
mov esi, dword [ebp - 0x14]
inc esi
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5ed0
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5e20
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5f60
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5d00
jmp 0x4d53c1
mov al, byte [ebp + 0xf]
test al, al
jne 0x4d4108
test edx, edx
jle 0x4d41d9
lea eax, [edx - 1]
mov ecx, edi
push eax
push ebx
push esi
call fcn.004e0000
mov dword [ebp + 8], eax
test eax, eax
je 0x4d41d6
mov ebx, eax
cmp dword [ebx + 0x20], 0xd7
jne 0x4d403e
cmp byte [ebp - 0xd], 0
je 0x4d4063
cmp dword [ebx + 0x224], 0xffffffff
jne 0x4d4063
mov ecx, dword [ebp - 0x20]
push ecx
push ebx
mov ecx, edi
call fcn.004e3cb0
jmp 0x4d4063
cmp byte [ebp - 0xd], 0
je 0x4d4063
mov eax, dword [ebx + 0x8c]
mov ecx, dword [ebp - 0x20]
inc eax
push ecx
push eax
push dword [ebx + 0x88]
mov ecx, edi
push dword [ebx + 0x80]
call fcn.004e3bb0
cmp byte [ebp - 0xe], 0
je case.0x4d457f.1456
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5d00
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5d90
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5ed0
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5e20
mov eax, dword [ebx + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [ebx + 0x88]
push dword [ebx + 0x80]
call fcn.004e5f60
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push edx
push ebx
push esi
mov ecx, edi
call fcn.004e0000
mov edx, dword [ebp - 0x14]
mov dword [ebp + 8], eax
test edx, edx
js 0x4d41d6
test eax, eax
je 0x4d41d6
cmp dword [eax + 0x20], 0xd7
jne 0x4d414e
cmp byte [ebp - 0xd], 0
je 0x4d4179
cmp dword [eax + 0x224], 0xffffffff
jne 0x4d4179
mov ecx, dword [ebp - 0x20]
push ecx
push eax
mov ecx, edi
call fcn.004e3cb0
jmp 0x4d4176
cmp byte [ebp - 0xd], 0
je 0x4d4179
mov eax, dword [eax + 0x8c]
mov ecx, dword [ebp - 0x20]
inc eax
push ecx
push eax
mov eax, dword [ebp + 8]
mov ecx, edi
push dword [eax + 0x88]
push dword [eax + 0x80]
call fcn.004e3bb0
mov edx, dword [ebp - 0x14]
cmp byte [ebp - 0xe], 0
je case.0x4d457f.1456
lea esi, [edx + 1]
mov ecx, edi
push esi
push ebx
push dword [ebp - 0x1c]
call fcn.004e5d00
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5d90
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5ed0
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5e20
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5f60
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov al, byte [ebp + 0xf]
cmp byte [ebp - 0xd], 0
je 0x4d4212
test al, al
jne 0x4d41fd
mov eax, dword [0x58d464]
push 1
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
test al, al
je 0x4d4212
mov eax, dword [ebp - 0x18]
mov ecx, edi
push dword [eax + 0x24c]
push dword [ebp - 0x14]
push ebx
push esi
call fcn.004e3bb0
cmp byte [ebp - 0xe], 0
je case.0x4d457f.1456
mov ecx, dword [ebp - 0x24]
cmp byte [ecx + 0xc], 0
je 0x4d4273
mov eax, dword [ebp - 0x14]
test eax, eax
js 0x4d4269
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e5d00
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5d90
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5ed0
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5e20
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5f60
mov ecx, dword [ebp - 0x24]
cmp byte [ecx + 0xc], 0
jne case.0x4d457f.1456
mov eax, dword [0x58d464]
push 2
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
test al, al
je case.0x4d457f.1456
mov eax, dword [ebp - 0x14]
test eax, eax
js case.0x4d457f.1456
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e5d00
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5d90
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5ed0
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5e20
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5f60
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp - 0xd], 0
je 0x4d4329
cmp byte [ebp + 0xf], 0
jne 0x4d4316
mov eax, dword [0x58d464]
push 1
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
mov edx, dword [ebp - 0x14]
test al, al
je 0x4d4329
mov ecx, dword [ebp - 0x18]
push dword [ecx + 0x24c]
mov ecx, edi
push edx
push ebx
push esi
call fcn.004e3890
mov edx, dword [ebp - 0x14]
cmp byte [ebp - 0xe], 0
je case.0x4d457f.1456
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0xc], 0
je 0x4d4357
test edx, edx
js 0x4d434d
push edx
push ebx
push esi
mov ecx, edi
call fcn.004e5f60
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0xc], 0
jne case.0x4d457f.1456
mov eax, dword [0x58d464]
push 2
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
test al, al
je case.0x4d457f.1456
mov eax, dword [ebp - 0x14]
test eax, eax
js case.0x4d457f.1456
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e5f60
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5d00
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5d90
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5ed0
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5e20
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, 1
mov dword [ebp + 8], eax
cmp dword [0x5882e8], esi
jne 0x4d43ef
xor ecx, ecx
movzx eax, al
cmp dword [0x5882e0], ebx
cmove eax, ecx
mov dword [ebp + 8], eax
cmp byte [ebp - 0xe], 0
je 0x4d4401
mov dword [0x5882e8], esi
mov dword [0x5882e0], ebx
mov eax, dword [edi + 4]
cmp dword [eax + 4], 2
jne case.0x4d457f.1456
cmp byte [ebp + 0xf], 0
jne 0x4d44b6
test edx, edx
jle 0x4d53c1
lea eax, [edx - 1]
mov ecx, edi
push eax
push ebx
push esi
call fcn.004e0000
mov esi, eax
test esi, esi
je 0x4d53c1
cmp byte [ebp - 0xd], 0
je 0x4d4463
mov eax, dword [ebp - 0x20]
cmp dword [esi + 0x20], eax
je 0x4d4463
push 0
push eax
mov eax, dword [esi + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [esi + 0x88]
push dword [esi + 0x80]
call fcn.004e51c0
cmp byte [ebp + 8], 0
je 0x4d53c1
cmp byte [ebp - 0xe], 0
je 0x4d53c1
mov eax, dword [0x58d464]
push 2
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
test al, al
je 0x4d53c1
mov eax, dword [esi + 0x8c]
push ecx
inc eax
mov ecx, edi
push eax
push dword [esi + 0x88]
push dword [esi + 0x80]
call fcn.004e5960
jmp 0x4d53c1
test edx, edx
js 0x4d44c8
push edx
push ebx
push esi
mov ecx, edi
call fcn.004e0000
test eax, eax
jne 0x4d44d8
mov eax, dword [ebp - 0x20]
cmp eax, 0x410
jne 0x4d53c1
jmp 0x4d44db
mov eax, dword [ebp - 0x20]
cmp byte [ebp - 0xd], 0
je 0x4d4504
cmp eax, 0x410
jne 0x4d4504
mov eax, dword [ebp - 0x18]
mov ecx, edi
push dword [eax + 0x250]
mov eax, dword [ebp - 0x14]
push 0x410
inc eax
push eax
push ebx
push esi
call fcn.004e51c0
cmp byte [ebp + 8], 0
je 0x4d53c1
cmp byte [ebp - 0xe], 0
je 0x4d53c1
mov ecx, dword [ebp - 0x18]
mov edx, 0x410
mov eax, dword [0x5882e4]
push ecx
cmp dword [ecx + 0x24c], edx
mov ecx, edi
cmove eax, edx
mov dword [0x5882e4], eax
mov eax, dword [ebp - 0x14]
inc eax
push eax
push ebx
push esi
call fcn.004e5960
jmp 0x4d53c1
cmp eax, 0x7d6
jg 0x4d46d8
je case.0x4d36b9.1048
cmp eax, 0x645
jg 0x4d46ac
cmp eax, 0x640
jge case.0x4d457f.1500
sub eax, 0x5aa
cmp eax, 0x36
ja case.0x4d457f.1456
movzx eax, byte [eax + 0x4d5618]
jmp dword [eax*4 + 0x4d560c]
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp + 8], edx
cmp eax, 3
ja case.default.0x4d45a0
jmp dword [eax*4 + 0x4d5650]
lea ecx, [esi - 2]
mov dword [ebp - 0x24], esi
mov edx, ebx
mov dword [ebp + 0xc], ecx
mov dword [ebp + 8], edx
mov dword [ebp - 0x1c], ebx
jmp 0x4d45fb
mov ecx, esi
mov dword [ebp - 0x24], esi
lea edx, [ebx - 2]
mov dword [ebp + 0xc], ecx
mov dword [ebp + 8], edx
mov dword [ebp - 0x1c], ebx
jmp 0x4d45fb
mov ecx, esi
mov dword [ebp - 0x1c], ebx
mov edx, ebx
mov dword [ebp + 0xc], ecx
add esi, 2
mov dword [ebp + 8], edx
mov dword [ebp - 0x24], esi
jmp 0x4d45fb
mov edx, ebx
mov dword [ebp - 0x24], esi
mov ecx, esi
mov dword [ebp + 8], edx
add ebx, 2
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0x1c], ebx
jmp 0x4d45fb
xor esi, esi
xor ebx, ebx
cmp byte [ebp - 0xd], 0
je 0x4d4644
push ebx
push esi
push edx
push ecx
mov ecx, edi
call fcn.0050c800
test eax, eax
je 0x4d463e
mov edx, dword [ebp - 0x20]
lea ecx, [edx - 0x640]
cmp ecx, 5
ja 0x4d4644
mov eax, dword [eax + 0x10]
add eax, 0xfffff9c0
cmp eax, 5
jbe 0x4d4644
push edx
push ebx
push esi
push dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov ecx, edi
push esi
call fcn.004e56c0
jmp 0x4d4647
mov ecx, dword [ebp - 0x20]
push ecx
jmp 0x4d462c
mov esi, dword [ebp + 0xc]
cmp byte [ebp - 0xe], 0
je case.0x4d457f.1456
push ebx
mov ebx, dword [ebp - 0x24]
mov ecx, edi
push ebx
push dword [ebp + 8]
push esi
call fcn.0050c800
test eax, eax
je case.0x4d457f.1456
mov ecx, dword [0x5882e4]
cmp ecx, 0xffffffff
je 0x4d467f
cmp dword [eax + 0x10], ecx
jne case.0x4d457f.1456
jmp 0x4d4687
mov eax, dword [eax + 0x10]
mov dword [0x5882e4], eax
mov eax, dword [ebp - 0x1c]
push ecx
push eax
push ebx
push dword [ebp + 8]
mov ecx, edi
push esi
call fcn.004e5820
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 0x7d0
je case.0x4d457f.1450
jle case.0x4d457f.1456
cmp eax, 0x7d4
jle case.0x4d36b9.1048
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 0x7dc
jg 0x4d4701
je case.0x4d36b9.1048
sub eax, 0x7d8
je case.0x4d36b9.1048
sub eax, 2
je case.0x4d36b9.1048
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 0x9c4
je case.0x4d457f.1450
add eax, 0xffffe890
cmp eax, 1
ja case.0x4d457f.1456
cmp dword [ebp - 0x20], 0x7d4
mov eax, dword [ebp - 0x28]
jne 0x4d4735
cmp eax, 2
jne 0x4d4735
mov dword [ecx + 0x24c], 0x7d5
cmp dword [ecx + 0x24c], 0x7d6
jne 0x4d4750
cmp eax, 2
jne 0x4d4750
mov dword [ecx + 0x24c], 0x7d7
cmp dword [ecx + 0x24c], 0x7d8
jne 0x4d476b
cmp eax, 2
jne 0x4d476b
mov dword [ecx + 0x24c], 0x7d9
cmp dword [ecx + 0x24c], 0x7da
jne 0x4d4786
cmp eax, 2
jne 0x4d4786
mov dword [ecx + 0x24c], 0x7db
cmp dword [ecx + 0x24c], 0x7dc
jne 0x4d47a1
cmp eax, 2
jne 0x4d47a1
mov dword [ecx + 0x24c], 0x7dd
mov edi, dword [ecx + 0x24c]
cmp edi, 0x425
mov dword [ebp + 0xc], edi
mov edi, dword [ebp + 8]
je 0x4d47cd
cmp dword [ecx + 0x24c], 0x1770
je 0x4d47cd
cmp dword [ecx + 0x24c], 0x1771
jne 0x4d47d3
mov dword [ecx + 0x250], eax
mov eax, dword [ecx + 0x24c]
cmp eax, 0x1770
je 0x4d4b12
cmp eax, 0x1771
je 0x4d4b12
cmp byte [ebp - 0xd], 0
je 0x4d48b6
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0xc], 0
jne 0x4d4823
mov eax, dword [0x58d464]
push 1
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
mov edx, dword [ebp - 0x14]
test al, al
je 0x4d48b6
push edx
push ebx
push esi
mov ecx, edi
call fcn.004e0510
test al, al
jne 0x4d48b3
push dword [ebp - 0x14]
lea eax, [esi - 1]
mov ecx, edi
push ebx
push eax
call fcn.004e0510
test al, al
jne 0x4d48b3
push dword [ebp - 0x14]
lea eax, [ebx - 1]
mov ecx, edi
push eax
push esi
call fcn.004e0510
test al, al
jne 0x4d48b3
push dword [ebp - 0x14]
lea eax, [ebx - 1]
mov ecx, edi
push eax
lea eax, [esi - 1]
push eax
call fcn.004e0510
test al, al
jne 0x4d48b3
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x3fc], 0xffffffff
mov ecx, dword [eax + 0x24c]
cmp ecx, 0x190
jne 0x4d4891
push 3
push ecx
jmp 0x4d4898
push dword [eax + 0x250]
push ecx
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004eaed0
push eax
mov ecx, edi
call fcn.004eca70
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x50]
mov edx, dword [ebp - 0x14]
cmp byte [ebp - 0xe], 0
je 0x4d53c1
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0xc], 0
je 0x4d49d5
test edx, edx
js 0x4d49d5
push edx
push ebx
push esi
mov ecx, edi
call fcn.004e0000
mov ecx, eax
mov dword [ebp + 0xc], ecx
test ecx, ecx
jne 0x4d4937
push dword [ebp - 0x14]
lea eax, [ebx - 1]
lea ecx, [esi - 1]
push eax
push ecx
mov ecx, edi
call fcn.004e0000
mov ecx, eax
mov dword [ebp + 0xc], ecx
test ecx, ecx
jne 0x4d4937
push dword [ebp - 0x14]
lea eax, [ebx - 1]
mov ecx, edi
push eax
push esi
call fcn.004e0000
mov ecx, eax
mov dword [ebp + 0xc], ecx
test ecx, ecx
jne 0x4d4937
push dword [ebp - 0x14]
lea eax, [esi - 1]
mov ecx, edi
push ebx
push eax
call fcn.004e0000
mov ecx, eax
mov dword [ebp + 0xc], eax
test ecx, ecx
je 0x4d49d5
mov edx, dword [0x5882e4]
xor al, al
cmp edx, 0xffffffff
jne 0x4d494c
cmp dword [0x5882dc], edx
je 0x4d4975
cmp dword [ecx + 0x20], edx
jne 0x4d4968
mov edi, dword [0x5882dc]
cmp dword [ecx + 0x6c], edi
mov edi, 1
movzx eax, al
cmove eax, edi
mov edi, dword [ebp + 8]
cmp edx, 0xffffffff
jne 0x4d4987
cmp dword [0x5882dc], edx
jne 0x4d4987
mov eax, dword [ecx + 0x20]
mov dword [0x5882e4], eax
mov eax, dword [ecx + 0x6c]
mov dword [0x5882dc], eax
jmp 0x4d498b
test al, al
je 0x4d49d5
mov esi, dword [ebp - 0x14]
mov ecx, edi
inc esi
push esi
push ebx
push dword [ebp - 0x1c]
call fcn.004e5e20
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5ed0
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5d90
push esi
mov esi, dword [ebp - 0x1c]
mov ecx, edi
push ebx
push esi
call fcn.004e5d00
push 1
push dword [ebp + 0xc]
mov ecx, edi
call fcn.004ecd80
mov ecx, dword [ebp + 0xc]
push 1
mov eax, dword [ecx]
call dword [eax]
mov edx, dword [ebp - 0x24]
cmp byte [edx + 0xc], 0
jne 0x4d53c1
mov eax, dword [0x58d464]
push 2
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
test al, al
je 0x4d53c1
mov eax, dword [ebp - 0x14]
test eax, eax
jle 0x4d53c1
dec eax
mov ecx, edi
push eax
push ebx
push esi
mov dword [ebp - 0x28], eax
call fcn.004e0000
mov ecx, eax
mov dword [ebp + 0xc], ecx
test ecx, ecx
jne 0x4d4a71
push dword [ebp - 0x28]
lea eax, [ebx - 1]
lea ecx, [esi - 1]
push eax
push ecx
mov ecx, edi
call fcn.004e0000
mov ecx, eax
mov dword [ebp + 0xc], ecx
test ecx, ecx
jne 0x4d4a71
push dword [ebp - 0x28]
lea eax, [ebx - 1]
mov ecx, edi
push eax
push esi
call fcn.004e0000
mov ecx, eax
mov dword [ebp + 0xc], ecx
test ecx, ecx
jne 0x4d4a71
push dword [ebp - 0x28]
lea eax, [esi - 1]
mov ecx, edi
push ebx
push eax
call fcn.004e0000
mov ecx, eax
mov dword [ebp + 0xc], eax
test ecx, ecx
je 0x4d53c1
mov edx, dword [0x5882e4]
xor al, al
cmp edx, 0xffffffff
jne 0x4d4a89
mov edi, dword [ebp + 8]
cmp dword [0x5882dc], edx
je 0x4d4ab2
cmp dword [ecx + 0x20], edx
jne 0x4d4aa5
mov edi, dword [0x5882dc]
cmp dword [ecx + 0x6c], edi
mov edi, 1
movzx eax, al
cmove eax, edi
mov edi, dword [ebp + 8]
cmp edx, 0xffffffff
jne 0x4d4ac4
cmp dword [0x5882dc], edx
jne 0x4d4ac4
mov eax, dword [ecx + 0x20]
mov dword [0x5882e4], eax
mov eax, dword [ecx + 0x6c]
mov dword [0x5882dc], eax
jmp 0x4d4acc
test al, al
je 0x4d53c1
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5e20
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5ed0
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5d90
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5d00
mov esi, dword [ebp + 0xc]
mov ecx, edi
push 1
push esi
call fcn.004ecd80
mov eax, dword [esi]
mov ecx, esi
jmp 0x4d53bd
cmp byte [ebp - 0xd], 0
je 0x4d4b5c
push edx
push ebx
push esi
mov ecx, edi
call fcn.004e0000
mov edx, eax
test edx, edx
je 0x4d4b59
cmp dword [ebp + 0xc], 0x1770
mov ecx, dword [ebp - 0x28]
jne 0x4d4b3f
mov dword [edx + ecx*4 + 0x22c], 1
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0x24c], 0x1771
jne 0x4d4b59
mov dword [edx + ecx*4 + 0x22c], 2
mov edx, dword [ebp - 0x14]
cmp byte [ebp - 0xe], 0
je case.0x4d457f.1456
push edx
push ebx
push esi
mov ecx, edi
call fcn.004e0000
mov edx, eax
test edx, edx
je case.0x4d457f.1456
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x28]
cmp dword [eax + 0x24c], 0x1770
jne 0x4d4b97
mov dword [edx + ecx*4 + 0x22c], 0
cmp dword [eax + 0x24c], 0x1771
jne case.0x4d457f.1456
mov dword [edx + ecx*4 + 0x22c], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 0x20]
cmp eax, 0x40c
je 0x4d4be5
cmp eax, 0x40d
je 0x4d4be5
cmp eax, 0x40e
je 0x4d4be5
cmp eax, 0x40f
jne 0x4d4c2b
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x4d4bf8
mov dword [ecx + 0x24c], 0x40f
jmp 0x4d4c2e
cmp eax, 1
jne 0x4d4c09
mov dword [ecx + 0x24c], 0x40c
jmp 0x4d4c2e
cmp eax, 2
jne 0x4d4c1a
mov dword [ecx + 0x24c], 0x40d
jmp 0x4d4c2e
cmp eax, 3
jne 0x4d4c2e
mov dword [ecx + 0x24c], 0x40e
jmp 0x4d4c2e
mov eax, dword [ebp - 0x28]
cmp dword [ecx + 0x24c], 0x421
je 0x4d4c46
cmp dword [ecx + 0x24c], 0x422
jne 0x4d4c65
test eax, eax
jne 0x4d4c56
mov dword [ecx + 0x24c], 0x421
jmp 0x4d4c65
cmp eax, 2
jne 0x4d4c65
mov dword [ecx + 0x24c], 0x422
mov al, 1
cmp dword [0x5882e8], esi
jne 0x4d4c7d
xor ecx, ecx
movzx eax, al
cmp dword [0x5882e0], ebx
cmove eax, ecx
cmp byte [ebp - 0xe], 0
jne 0x4d4c89
cmp byte [ebp - 0xd], 0
je 0x4d4c95
mov dword [0x5882e8], esi
mov dword [0x5882e0], ebx
test al, al
je case.0x4d457f.1456
mov eax, dword [edi + 4]
cmp dword [eax + 4], 2
jne case.0x4d457f.1456
mov eax, dword [ebp - 0x24]
mov al, byte [eax + 0xc]
mov byte [ebp + 0xf], al
test al, al
jne 0x4d4e07
test edx, edx
jle 0x4d4e87
lea eax, [edx - 1]
mov ecx, edi
push eax
push ebx
push esi
call fcn.004e0000
mov dword [ebp + 8], eax
test eax, eax
je 0x4d4e84
mov esi, eax
mov ecx, dword [esi + 0x20]
cmp ecx, 0xd7
je 0x4d4d19
cmp byte [ebp - 0xd], 0
je 0x4d4d19
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x24c]
cmp ecx, eax
je 0x4d4d19
push 0
push eax
mov eax, dword [esi + 0x8c]
mov ecx, edi
inc eax
push eax
push dword [esi + 0x88]
push dword [esi + 0x80]
call fcn.004e3e80
cmp byte [ebp - 0xe], 0
je 0x4d53c1
mov eax, dword [0x58d464]
push 2
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
test al, al
je 0x4d53c1
mov eax, dword [esi + 0x8c]
mov ecx, edi
push 0x5882dc
push 0x5882e4
inc eax
push eax
push dword [esi + 0x88]
push dword [esi + 0x80]
call fcn.004e5880
test al, al
jne 0x4d53c1
mov ecx, dword [0x5882e4]
mov edx, dword [0x5882dc]
cmp ecx, 0xffffffff
jne 0x4d4d84
cmp edx, 0xffffffff
je 0x4d4da3
cmp dword [esi + 0x20], ecx
jne 0x4d4d9a
cmp dword [esi + 0x6c], edx
movzx eax, al
mov dword [ebp + 0xc], 1
cmove eax, dword [ebp + 0xc]
cmp ecx, 0xffffffff
jne 0x4d4db5
cmp edx, ecx
jne 0x4d4db5
mov eax, dword [esi + 0x20]
mov dword [0x5882e4], eax
mov eax, dword [esi + 0x6c]
mov dword [0x5882dc], eax
jmp 0x4d4dbd
test al, al
je 0x4d53c1
mov esi, dword [ebp - 0x14]
mov ecx, edi
inc esi
push esi
push ebx
push dword [ebp - 0x1c]
call fcn.004e5e20
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5ed0
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5d90
push esi
push ebx
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.004e5d00
mov esi, dword [ebp + 8]
mov ecx, edi
push 1
push esi
call fcn.004ecd80
mov eax, dword [esi]
mov ecx, esi
jmp 0x4d53bd
push ebx
push esi
mov ecx, edi
call fcn.004dffc0
push dword [ebp - 0x14]
mov ecx, edi
mov dword [ebp - 0x1c], eax
push ebx
push esi
call fcn.004e0000
mov edx, dword [ebp - 0x1c]
xor cl, cl
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], ecx
test edx, edx
je 0x4d4e43
cmp dword [edx + 0x28], 0x429
mov edx, 1
movzx ecx, cl
cmove ecx, edx
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x14]
test edx, edx
js 0x4d4e52
test eax, eax
jne 0x4d50ba
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x24c]
cmp ecx, 0x410
je 0x4d507b
cmp dword [ebp - 0x1c], 0
je 0x4d4e77
cmp byte [ebp - 0x2c], 0
je 0x4d507b
call fcn.004d7590
test al, al
jne 0x4d507b
mov al, byte [ebp + 0xf]
cmp byte [ebp - 0xd], 0
je 0x4d4fa8
test al, al
jne 0x4d4eb3
mov eax, dword [0x58d464]
push 1
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
test al, al
je 0x4d4fa8
mov edx, dword [ebp - 0x18]
mov dword [edi + 0x3fc], 0xffffffff
mov ecx, dword [edx + 0x24c]
call fcn.004d7590
test al, al
jne 0x4d4f7d
cmp ecx, 0x429
je 0x4d4f7d
cmp ecx, 0x9c4
je 0x4d4f85
cmp ecx, 0x421
je 0x4d4fa8
cmp ecx, 0x422
je 0x4d4fa8
mov eax, dword [edx + 0x250]
cmp eax, 0xc9
je 0x4d4f49
cmp eax, 0xcb
je 0x4d4f49
cmp eax, 0xcd
je 0x4d4f49
cmp eax, 0xcf
je 0x4d4f49
cmp eax, 0x33
je 0x4d4f49
push eax
push ecx
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004eaed0
push eax
mov ecx, edi
call fcn.004eca70
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x50]
jmp 0x4d4fa8
dec eax
push eax
push ecx
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004eaed0
push eax
mov ecx, edi
call fcn.004eca70
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x50]
mov eax, dword [ebp - 0x18]
push dword [eax + 0x250]
push dword [eax + 0x24c]
mov eax, dword [ebp - 0x14]
inc eax
push eax
jmp 0x4d4f9f
cmp ecx, 0x9c4
jne 0x4d4f99
push 0
push 0x9c4
push 0
push ebx
push esi
mov ecx, edi
call fcn.004e5350
jmp 0x4d4fa8
push 0
push ecx
push dword [ebp - 0x14]
push ebx
push esi
mov ecx, edi
call fcn.004e3e80
cmp byte [ebp - 0xe], 0
je 0x4d53c1
mov ecx, dword [ebp - 0x24]
cmp byte [ecx + 0xc], 0
je 0x4d500c
mov eax, dword [ebp - 0x14]
test eax, eax
js 0x4d5002
push ecx
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e5a40
push 0x5882dc
push 0x5882e4
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5880
test al, al
jne 0x4d4fff
mov eax, dword [ebp - 0x14]
mov ecx, edi
push 0x5882dc
push 0x5882e4
inc eax
push eax
push ebx
push esi
call fcn.004e5880
mov ecx, dword [ebp - 0x24]
cmp byte [ecx + 0xc], 0
jne 0x4d53c1
mov eax, dword [0x58d464]
push 2
mov eax, dword [eax + 0x154]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x170]
test al, al
je 0x4d53c1
mov eax, dword [ebp - 0x14]
test eax, eax
js 0x4d53c1
push ecx
push eax
push ebx
push esi
mov ecx, edi
call fcn.004e5a40
push 0x5882dc
push 0x5882e4
push dword [ebp - 0x14]
mov ecx, edi
push ebx
push esi
call fcn.004e5880
test al, al
jne 0x4d53c1
mov eax, dword [ebp - 0x14]
mov ecx, edi
push 0x5882dc
push 0x5882e4
inc eax
push eax
push ebx
push esi
call fcn.004e5880
jmp 0x4d53c1
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x4d50ba
cmp byte [ebp - 0xd], al
je 0x4d5281
cmp ecx, 0x410
je 0x4d50a5
cmp dword [ebp - 0x1c], eax
jne 0x4d50a5
call fcn.004d7590
test al, al
je 0x4d5281
mov eax, dword [ebp - 0x18]
push dword [eax + 0x250]
lea eax, [edx + 1]
push ecx
push eax
push ebx
push esi
jmp 0x4d5277
mov ecx, dword [eax + 0x20]
mov dword [ebp - 0x34], ecx
cmp ecx, 0xd7
je 0x4d5281
cmp byte [ebp - 0xd], 0
mov ecx, dword [ebp - 0x18]
je 0x4d5284
mov edi, dword [ecx + 0x24c]
mov dword [ebp + 0xc], edi
mov edi, dword [eax + 0x20]
cmp edi, dword [ecx + 0x24c]
mov edi, dword [ebp + 8]
jne 0x4d5102
mov eax, dword [eax + 0x6c]
cmp eax, dword [ecx + 0x250]
je 0x4d5284
mov eax, dword [ebp - 0x28]
mov edx, dword [ecx + 0x24c]
cmp edx, 0x421
je 0x4d5214
cmp edx, 0x422
je 0x4d5214
cmp edx, 0x9c4
jne 0x4d5149
push dword [ecx + 0x250]
mov ecx, edi
push edx
push 0
push dword [eax + 0x88]
push dword [eax + 0x80]
call fcn.004e5350
jmp 0x4d527e
mov edi, dword [ecx + 0x250]
mov dword [ebp - 0x34], edi
mov edi, dword [eax + 0x8c]
mov eax, dword [ebp - 0x28]
inc edi
mov dword [ebp - 0x2c], edi
mov ecx, dword [eax + 0x88]
mov dword [ebp - 0x24], ecx
mov ecx, dword [eax + 0x80]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x18]
push dword [ecx + 0x250]
push edx
push edi
push dword [eax + 0x88]
mov edi, dword [ebp + 8]
mov ecx, edi
push dword [eax + 0x80]
call fcn.004e3de0
test al, al
jne 0x4d51e9
mov eax, dword [ebp - 0x34]
cmp eax, 0xc9
je 0x4d51ba
cmp eax, 0xcb
je 0x4d51ba
cmp eax, 0xcd
je 0x4d51ba
cmp eax, 0xcf
je 0x4d51ba
cmp eax, 0x33
jne 0x4d51e9
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x4d51ca
dec eax
cmp dword [ecx + 0x2c], eax
je 0x4d51e9
push eax
jmp 0x4d51d6
lea ecx, [eax - 1]
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x6c], ecx
je 0x4d51e9
push ecx
push dword [ebp + 0xc]
mov ecx, edi
push dword [ebp - 0x2c]
push dword [ebp - 0x24]
push dword [ebp - 0x30]
call fcn.004e3e80
mov eax, dword [ebp - 0x18]
push dword [eax + 0x250]
push dword [eax + 0x24c]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x8c]
inc eax
push eax
mov eax, dword [ebp - 0x28]
push dword [eax + 0x88]
push dword [eax + 0x80]
jmp 0x4d5277
mov ecx, dword [eax + 0x88]
mov eax, dword [eax + 0x80]
push ecx
mov dword [ebp - 0x30], ecx
mov ecx, edi
push eax
mov dword [ebp - 0x2c], eax
call fcn.004dffc0
xor cl, cl
test eax, eax
je 0x4d5246
mov eax, dword [eax + 0x28]
cmp eax, 0x421
je 0x4d5246
cmp eax, 0x422
jne 0x4d5248
mov cl, 1
mov eax, dword [ebp - 0x34]
test eax, eax
jle 0x4d527e
cmp eax, 0xc8
jge 0x4d527e
test cl, cl
je 0x4d527e
mov eax, dword [ebp - 0x18]
push dword [eax + 0x250]
mov eax, dword [ebp - 0x28]
push dword [ebp + 0xc]
mov eax, dword [eax + 0x8c]
inc eax
push eax
push dword [ebp - 0x30]
push dword [ebp - 0x2c]
mov ecx, edi
call fcn.004e3e80
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
cmp byte [ebp - 0xe], 0
je 0x4d53c1
cmp dword [ecx + 0x24c], 0x410
mov ecx, edi
mov eax, dword [0x5882e4]
mov dword [ebp + 0xc], 0x410
cmove eax, dword [ebp + 0xc]
push 0x5882dc
push 0x5882e4
mov dword [0x5882e4], eax
lea eax, [edx + 1]
push eax
push ebx
push esi
mov dword [ebp + 0xc], eax
call fcn.004e5880
test al, al
jne 0x4d53c1
mov ecx, dword [ebp - 0x28]
test ecx, ecx
jne 0x4d5325
push dword [ebp - 0x14]
lea eax, [ebx - 1]
lea ecx, [esi - 1]
push eax
push ecx
mov ecx, edi
call fcn.004e0000
mov ecx, eax
mov dword [ebp - 0x28], ecx
test ecx, ecx
jne 0x4d5325
push dword [ebp - 0x14]
lea eax, [ebx - 1]
mov ecx, edi
push eax
push esi
call fcn.004e0000
mov ecx, eax
mov dword [ebp - 0x28], ecx
test ecx, ecx
jne 0x4d5325
push dword [ebp - 0x14]
lea eax, [esi - 1]
mov ecx, edi
push ebx
push eax
call fcn.004e0000
mov ecx, eax
mov dword [ebp - 0x28], ecx
test ecx, ecx
je 0x4d53c1
mov edx, dword [0x5882e4]
xor al, al
cmp edx, 0xffffffff
jne 0x4d533d
mov edi, dword [ebp + 8]
cmp dword [0x5882dc], edx
je 0x4d5366
cmp dword [ecx + 0x20], edx
jne 0x4d5359
mov edi, dword [0x5882dc]
cmp dword [ecx + 0x6c], edi
mov edi, 1
movzx eax, al
cmove eax, edi
mov edi, dword [ebp + 8]
cmp edx, 0xffffffff
jne 0x4d5378
cmp dword [0x5882dc], edx
jne 0x4d5378
mov eax, dword [ecx + 0x20]
mov dword [0x5882e4], eax
mov eax, dword [ecx + 0x6c]
mov dword [0x5882dc], eax
jmp 0x4d537c
test al, al
je 0x4d53c1
push dword [ebp + 0xc]
mov ecx, edi
push ebx
push esi
call fcn.004e5e20
push dword [ebp + 0xc]
mov ecx, edi
push ebx
push esi
call fcn.004e5ed0
push dword [ebp + 0xc]
mov ecx, edi
push ebx
push esi
call fcn.004e5d90
push dword [ebp + 0xc]
mov ecx, edi
push ebx
push esi
call fcn.004e5d00
mov ebx, dword [ebp - 0x28]
mov ecx, edi
push 1
push ebx
call fcn.004ecd80
mov eax, dword [ebx]
mov ecx, ebx
push 1
call dword [eax]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x24c], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8