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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x110
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
call sub.api_ms_win_crt_locale_l1_1_0.dll_localeconv
mov eax, dword [eax]
mov dword [esp + 0x50], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0x64], eax
mov dword [esp + 8], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 4], 0
mov eax, dword [esi]
mov dword [esp + 0x18], eax
add edi, 1
jmp 0x4d0433
add edi, 1
movzx ebx, byte [edi - 1]
movsx ecx, bl
lea edx, [ecx - 9]
cmp edx, 5
jb 0x4d0430
cmp ecx, 0x2a
jg 0x4d0452
cmp ecx, 0x20
je 0x4d0430
test ecx, ecx
je 0x4d046f
jmp 0x4d0488
cmp ecx, 0x2b
je 0x4d0463
cmp ecx, 0x2d
jne 0x4d0488
mov eax, 1
jmp 0x4d0465
xor eax, eax
mov dword [esp + 0x20], edi
mov bl, byte [edi]
test bl, bl
jne 0x4d0491
mov dword [esp + 8], 6
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], eax
xor ecx, ecx
mov edi, dword [ebp + 0xc]
jmp 0x4d1ca1
add edi, 0xffffffff
mov dword [esp + 0x20], edi
xor eax, eax
mov dword [esp + 0x1c], eax
cmp bl, 0x30
jne 0x4d04e7
movsx ecx, byte [edi + 1]
or ecx, 0x20
cmp ecx, 0x78
jne 0x4d05fd
lea eax, [esp + 4]
lea ecx, [esp + 0x20]
mov esi, dword [esp + 0x1c]
push esi
push eax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ecx
call fcn.004f1f30
mov ecx, esi
add esp, 0x14
mov dword [esp + 8], eax
cmp eax, 6
mov edi, dword [ebp + 0xc]
jne 0x4d1ca1
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], eax
xor ecx, ecx
jmp 0x4d1ca1
mov eax, ebx
mov byte [esp + 0x60], bl
movsx ebx, al
mov ecx, eax
add cl, 0xd0
mov dword [esp + 0x10], 0
cmp cl, 9
mov dword [esp + 0x30], edi
ja 0x4d055c
add edi, 1
xor ecx, ecx
xor edx, edx
xor esi, esi
jmp 0x4d0545
lea esi, [edx + edx*4]
lea edx, [ebx + esi*2]
add edx, 0xffffffd0
add eax, 1
mov dword [esp + 0x20], edi
mov esi, eax
movzx eax, byte [edi]
movsx ebx, al
mov ah, al
add ah, 0xd0
add edi, 1
cmp ah, 0xa
jae 0x4d0570
cmp esi, 8
mov eax, esi
jbe 0x4d0520
cmp eax, 0xf
ja 0x4d0529
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*2]
add ecx, 0xffffffd0
jmp 0x4d0529
mov dword [esp + 0x70], 0
mov dword [esp + 0xc], 0
xor ecx, ecx
jmp 0x4d057b
mov dword [esp + 0x70], esi
mov dword [esp + 0xc], edx
add edi, 0xffffffff
mov esi, dword [ebp + 0x10]
mov esi, dword [esi + 0x10]
mov dword [esp + 0x68], esi
mov dl, 1
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x50]
cmp al, byte [edx]
jne 0x4d05e0
mov ah, byte [edx + 1]
mov esi, 1
test ah, ah
je 0x4d05b0
nop
cmp byte [edi + esi], ah
jne 0x4d05e0
mov ah, byte [edx + esi + 1]
add esi, 1
test ah, ah
jne 0x4d05a0
lea eax, [edi + esi]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], eax
movsx eax, byte [edi + esi]
mov ebx, dword [esp + 0x70]
test ebx, ebx
je 0x4d0622
mov dword [esp + 0x14], ebx
xor edx, edx
mov esi, dword [esp + 0x30]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0xc]
xor edi, edi
jmp 0x4d069c
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x70]
mov dword [esp + 0x14], eax
mov dword [esp + 0x50], 0
mov esi, dword [esp + 0xc]
jmp 0x4d07d5
add edi, 1
mov dword [esp + 0x20], edi
movzx eax, byte [edi]
add edi, 1
cmp al, 0x30
je 0x4d0600
test al, al
mov ecx, dword [esp + 0x1c]
je 0x4d0480
add edi, 0xffffffff
jmp 0x4d04e9
mov ebx, 0
cmp al, 0x30
jne 0x4d065b
lea eax, [esi + edi]
add eax, 1
xor ebx, ebx
nop word cs:[eax + eax]
nop dword [eax]
add ebx, 1
mov dword [esp + 0x20], eax
movsx edx, byte [eax]
add eax, 1
cmp edx, 0x30
je 0x4d0640
add eax, 0xffffffff
mov dword [esp + 0x2c], eax
mov eax, edx
mov edx, eax
add eax, 0xffffffcf
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x44], esi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x50], ebx
cmp eax, 9
mov eax, edx
mov esi, dword [esp + 0xc]
mov dword [esp + 0x14], 0
mov edi, ebx
mov ebx, 0
jae 0x4d07d7
jmp 0x4d06b6
mov dword [esp + 0x50], edx
mov ebx, eax
add eax, 0xffffffd0
cmp eax, 9
ja 0x4d07c1
mov edx, dword [esp + 0x50]
mov eax, ebx
mov ebx, edx
lea edx, [ebx + 1]
add eax, 0xffffffd0
je 0x4d06dd
test ebx, ebx
mov dword [esp + 0xc], eax
jle 0x4d06ea
mov dword [esp + 0x10], edi
mov dword [esp + 0x50], edx
cmp ebx, 1
mov dword [esp + 0x30], ebx
jne 0x4d06f3
mov eax, dword [esp + 0x14]
jmp 0x4d0740
mov dword [esp + 0x10], edi
mov ebx, dword [esp + 0x14]
jmp 0x4d079f
mov eax, dword [esp + 0x14]
jmp 0x4d0772
mov edi, ebx
and edi, 0xfffffffe
neg edi
mov edx, dword [esp + 0x14]
nop
lea eax, [esi + esi]
lea ebx, [ecx + ecx]
cmp edx, 0x10
lea ebx, [ebx + ebx*4]
cmovge ebx, ecx
cmp edx, 9
lea eax, [eax + eax*4]
cmovge eax, esi
cmovl ebx, ecx
lea esi, [eax + eax]
lea ecx, [ebx + ebx]
cmp edx, 0xf
lea ecx, [ecx + ecx*4]
cmovge ecx, ebx
cmp edx, 8
lea esi, [esi + esi*4]
cmovge esi, eax
lea eax, [edx + 2]
cmovl ecx, ebx
mov edx, eax
add edi, 2
jne 0x4d0700
mov ebx, dword [esp + 0x30]
test bl, 1
je 0x4d0764
lea edx, [ecx + ecx]
cmp eax, 0x10
lea edx, [edx + edx*4]
cmovge edx, ecx
cmp eax, 9
cmovge ecx, edx
lea eax, [esi + esi]
lea eax, [eax + eax*4]
cmovl esi, eax
mov eax, dword [esp + 0x14]
add eax, ebx
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x10]
add edi, edx
lea ebx, [eax + 1]
cmp eax, 8
mov dword [esp + 0x10], edi
jg 0x4d078e
lea eax, [esi + esi*4]
mov esi, dword [esp + 0xc]
lea esi, [esi + eax*2]
xor edx, edx
jmp 0x4d079f
xor edx, edx
cmp eax, 0xf
jg 0x4d079f
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0xc]
lea ecx, [ecx + eax*2]
mov edi, dword [esp + 0x2c]
lea eax, [edi + 1]
mov dword [esp + 0x20], eax
movsx edi, byte [edi + 1]
mov dword [esp + 0x2c], eax
mov eax, edi
mov dword [esp + 0x14], ebx
mov edi, dword [esp + 0x10]
jmp 0x4d069c
mov dword [esp + 0x10], edi
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x44]
mov dword [esp + 0x30], eax
mov eax, ebx
mov ebx, eax
and eax, 0xffffffdf
xor edx, edx
cmp eax, 0x45
jne 0x4d0813
cmp byte [esp + 0x60], 0x30
mov eax, dword [esp + 0x50]
je 0x4d08e8
or eax, dword [esp + 0x14]
jne 0x4d08e8
mov dword [esp + 8], 6
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov edi, dword [ebp + 0xc]
jmp 0x4d1c9d
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x10]
cmp dword [esp + 0x14], 0
je 0x4d085e
mov dword [esp + 8], 1
mov eax, dword [eax + 0xc]
and eax, 3
mov dword [esp + 0xc], esi
je 0x4d0956
cmp eax, 3
je 0x4d095d
xor esi, esi
cmp eax, 2
jne 0x4d0964
mov esi, 2
sub esi, dword [esp + 0x1c]
jmp 0x4d0964
cmp byte [esp + 0x60], 0x30
je 0x4d178c
cmp dword [esp + 0x50], 0
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x1c]
jne 0x4d1ca1
cmp byte [esp + 0x4c], 0
je case.0x4d0892.74
add ebx, 0xffffffb7
cmp ebx, 0x25
ja case.0x4d0892.74
jmp dword [ebx*4 + 0x50ce18]
lea esi, [esp + 0x20]
push 0x50ceb0
push esi
call fcn.004f2980
mov ecx, dword [esp + 0x24]
add esp, 8
test eax, eax
je case.0x4d0892.74
add dword [esp + 0x20], 0xffffffff
push str.inity
push esi
call fcn.004f2980
add esp, 8
test eax, eax
jne 0x4d08d3
add dword [esp + 0x20], 1
mov dword [esp + 8], 3
mov dword [esp + 0x10], 0
jmp 0x4d0ed1
mov eax, dword [esp + 0x2c]
lea edx, [eax + 1]
mov dword [esp + 0x20], edx
movsx eax, byte [eax + 1]
xor edi, edi
cmp eax, 0x2b
je 0x4d0908
cmp eax, 0x2d
jne 0x4d0917
mov edi, 1
mov eax, dword [esp + 0x2c]
lea edx, [eax + 2]
mov dword [esp + 0x20], edx
movsx eax, byte [eax + 2]
mov ebx, eax
add eax, 0xffffffd0
cmp eax, 9
ja 0x4d0947
cmp ebx, 0x30
jne 0x4d0af7
add edx, 1
nop dword [eax]
mov dword [esp + 0x20], edx
movsx eax, byte [edx]
add edx, 1
cmp eax, 0x30
je 0x4d0930
add edx, 0xffffffff
jmp 0x4d0af9
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
xor edx, edx
jmp 0x4d081a
mov esi, 1
jmp 0x4d0964
mov eax, dword [esp + 0x1c]
lea esi, [eax + 1]
mov dword [esp + 0x4c], esi
mov ebx, dword [esp + 0x70]
test ebx, ebx
mov eax, dword [esp + 0x14]
cmove ebx, eax
cmp eax, 0x10
mov edi, 0x10
cmovl edi, eax
movss xmm1, dword [esp + 0xc]
orpd xmm1, xmmword [0x50cdb0]
subsd xmm1, qword [0x50cdc0]
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0xc0], xmm1
cmp edi, 0xa
jl 0x4d09ec
mov eax, dword [0x50cf1c]
mulsd xmm1, qword [eax + edi*8 - 0x48]
movd xmm0, ecx
por xmm0, xmmword [0x50cdb0]
subsd xmm0, qword [0x50cdc0]
addsd xmm1, xmm0
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0xb8], xmm1
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0xbc]
jmp 0x4d09fa
mov eax, dword [esp + 0xc0]
mov esi, dword [esp + 0xc4]
sub edx, dword [esp + 0x10]
cmp dword [esp + 0x18], 0x35
mov dword [esp + 0x70], ebx
jg 0x4d0c37
cmp dword [esp + 0x14], 0xf
jg 0x4d0c37
test edx, edx
je 0x4d0ab8
jle 0x4d0bb9
cmp edx, 0x16
jg 0x4d0c24
mov ebx, edx
mov edx, dword [edx*4 + 0x50cebc]
or esi, 0x100000
xor ecx, ecx
test eax, eax
cmovne esi, eax
setne cl
shl ecx, 5
bsf eax, esi
sub ecx, eax
add ecx, edx
add ecx, 0x15
xor eax, eax
cmp ecx, 0x36
setl al
mov ecx, dword [0x50cf1c]
mulsd xmm1, qword [ecx + ebx*8]
movapd xmmword [esp + 0x50], xmm1
movsd qword [esp + 0x38], xmm1
lea esi, [esp + 8]
lea ecx, [esp + 0x38]
mov edx, dword [ebp + 0x10]
push esi
push dword [esp + 0x50]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.004d1e40
movapd xmm1, xmmword [esp + 0x64]
add esp, 0x14
movsd qword [esp + 0xf0], xmm1
test eax, eax
jne 0x4d178c
xor eax, eax
mov esi, dword [esp + 0xf4]
jmp 0x4d1870
movapd xmmword [esp + 0x50], xmm1
mov ebx, edx
lea eax, [esp + 8]
lea ecx, [esp + 0x38]
mov edx, dword [ebp + 0x10]
push eax
push dword [esp + 0x50]
push 1
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.004d1e40
add esp, 0x14
test eax, eax
jne 0x4d178c
xor eax, eax
mov edx, ebx
movapd xmm1, xmmword [esp + 0x50]
jmp 0x4d0c39
mov eax, ebx
lea ebx, [eax - 0x31]
cmp ebx, 8
ja 0x4d0bad
mov dword [esp + 0x6c], edi
mov dword [esp + 0xc], esi
mov ebx, eax
lea edi, [eax - 0x30]
lea esi, [edx + 1]
mov dword [esp + 0x20], esi
movsx eax, byte [edx + 1]
mov dword [esp + 0xa0], eax
add al, 0xd0
cmp al, 9
ja 0x4d0b78
lea esi, [edx + 2]
mov ebx, dword [esp + 0xa0]
nop word cs:[eax + eax]
nop
lea eax, [edi + edi*4]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x34], eax
lea edi, [ebx + eax*2]
add edi, 0xffffffd0
mov dword [esp + 0x20], esi
movsx ebx, byte [esi]
mov eax, ebx
add al, 0xd0
add esi, 1
cmp al, 0xa
jb 0x4d0b40
mov dword [esp + 0xa0], ebx
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x34]
lea ebx, [eax + ebx*2]
add esi, 0xffffffff
sub esi, edx
cmp esi, 8
mov eax, 0x4e1f
cmovg edi, eax
cmp ebx, 0x4e4f
cmovg edi, eax
mov edx, edi
neg edx
cmp dword [esp + 0x6c], 0
cmove edx, edi
mov ebx, dword [esp + 0xa0]
mov eax, dword [ebp + 0x10]
mov esi, dword [esp + 0xc]
jmp 0x4d081d
mov ebx, eax
mov eax, dword [ebp + 0x10]
xor edx, edx
jmp 0x4d081d
cmp edx, 0xffffffea
jl 0x4d0c37
lea eax, [edx*8]
mov ecx, dword [0x50cf1c]
sub ecx, eax
divsd xmm1, qword [ecx]
movapd xmmword [esp + 0x50], xmm1
movsd qword [esp + 0x38], xmm1
lea eax, [esp + 8]
lea ecx, [esp + 0x38]
mov ebx, edx
mov edx, dword [ebp + 0x10]
push eax
push dword [esp + 0x50]
push 0
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.004d1e40
movapd xmm1, xmmword [esp + 0x64]
add esp, 0x14
movsd qword [esp + 0x100], xmm1
test eax, eax
jne 0x4d178c
xor eax, eax
mov esi, dword [esp + 0x104]
jmp 0x4d1870
mov eax, 0x25
mov ecx, dword [esp + 0x14]
sub eax, ecx
cmp edx, eax
jle 0x4d172c
mov eax, edx
mov ecx, dword [esp + 0x14]
sub ecx, edi
add ecx, eax
mov dword [esp + 0x60], edx
jle 0x4d0d47
mov eax, ecx
and eax, 0xf
je 0x4d0c73
mov edx, dword [0x50cf1c]
mulsd xmm1, qword [edx + eax*8]
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0xd8], xmm1
mov esi, dword [esp + 0xdc]
xor edi, edi
cmp ecx, 0x10
jb 0x4d0e3b
mov eax, ecx
shr eax, 4
xor edx, edx
cmp ecx, 0x100
jb 0x4d0cec
mov ecx, dword [0x50cf18]
movsd xmm0, qword [ecx + 0x20]
xor edx, edx
nop word [eax + eax]
mov ecx, eax
mov eax, esi
shr eax, 0x14
and eax, 0x7ff
add edx, eax
add edx, 0xfffffc01
and esi, 0x800fffff
or esi, 0x3ff00000
mov dword [esp + 0x3c], esi
movsd xmm1, qword [esp + 0x38]
mulsd xmm1, xmm0
movsd qword [esp + 0x38], xmm1
lea eax, [ecx - 0x10]
movsd qword [esp + 0xd0], xmm1
mov esi, dword [esp + 0xd4]
cmp ecx, 0x1f
jg 0x4d0ca0
mov ecx, esi
shr ecx, 0x14
and ecx, 0x7ff
lea edi, [edx + ecx]
add edi, 0xfffffc01
and esi, 0x800fffff
or esi, 0x3ff00000
mov dword [esp + 0x3c], esi
test eax, eax
jle 0x4d0e3b
mov ecx, dword [0x50cf18]
movsd xmm0, qword [esp + 0x38]
jmp 0x4d0d3d
shr eax, 1
add ecx, 8
test eax, eax
je 0x4d0e35
test al, 1
je 0x4d0d30
mulsd xmm0, qword [ecx]
jmp 0x4d0d30
xor edi, edi
test ecx, ecx
jns 0x4d0e3b
neg ecx
mov eax, ecx
and eax, 0xf
je 0x4d0d7b
mov edx, dword [0x50cf1c]
divsd xmm1, qword [edx + eax*8]
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0xe8], xmm1
mov esi, dword [esp + 0xec]
cmp ecx, 0x10
jb 0x4d0e3b
mov eax, ecx
shr eax, 4
xor edx, edx
cmp ecx, 0x100
jb 0x4d0dec
mov ecx, dword [0x50cf20]
movsd xmm0, qword [ecx + 0x20]
xor edx, edx
mov ecx, eax
mov eax, esi
shr eax, 0x14
and eax, 0x7ff
add edx, eax
add edx, 0xfffffc01
and esi, 0x800fffff
or esi, 0x3ff00000
mov dword [esp + 0x3c], esi
movsd xmm1, qword [esp + 0x38]
mulsd xmm1, xmm0
movsd qword [esp + 0x38], xmm1
lea eax, [ecx - 0x10]
movsd qword [esp + 0xe0], xmm1
mov esi, dword [esp + 0xe4]
cmp ecx, 0x1f
jg 0x4d0da0
mov ecx, esi
shr ecx, 0x14
and ecx, 0x7ff
lea edi, [edx + ecx]
add edi, 0xfffffc01
and esi, 0x800fffff
or esi, 0x3ff00000
mov dword [esp + 0x3c], esi
test eax, eax
jle 0x4d0e3b
mov ecx, dword [0x50cf20]
movsd xmm0, qword [esp + 0x38]
jmp 0x4d0e2b
shr eax, 1
add ecx, 8
test eax, eax
je 0x4d0e35
test al, 1
je 0x4d0e22
mulsd xmm0, qword [ecx]
jmp 0x4d0e22
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [esp + 0x38]
sub esp, 0x10
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x38]
mov dword [esp + 8], eax
movsd qword [esp], xmm0
call fcn.004f1d50
add esp, 0x10
add edi, dword [esp + 0x28]
mov dword [esp + 4], eax
mov dword [esp + 0x28], edi
mov ecx, dword [esp + 0x24]
mov esi, ecx
mov ebx, dword [esp + 0x18]
sub esi, ebx
jle 0x4d0e95
push esi
push eax
call fcn.004f2bf0
add esp, 8
mov dword [esp + 0x24], ebx
add esi, dword [esp + 0x28]
mov dword [esp + 0x28], esi
mov ecx, ebx
mov edi, esi
mov esi, edi
sub esi, ebx
add esi, ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 8]
add eax, 1
mov dword [esp + 0x10], 0
cmp esi, eax
jle 0x4d0ef3
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 4]
mov dword [eax + 0x10], 0
mov dword [esp + 8], 0xa3
call sub.api_ms_win_crt_runtime_l1_1_0.dll__errno
mov dword [eax], 0x22
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebx + 8]
add eax, 1
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
cmp dword [esp + 0x10], 0
jne 0x4d1c74
jmp 0x4d1ca1
mov eax, dword [edx + 4]
mov dword [esp + 0x48], esi
cmp esi, eax
mov edx, eax
mov dword [esp + 0x34], eax
jge 0x4d0f36
sub edi, eax
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x70]
jle 0x4d1684
push edi
push dword [esp + 8]
call fcn.004f1770
add esp, 8
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
add dword [esp + 0x24], edi
mov edx, dword [esp + 0x14]
jmp 0x4d19c0
mov dword [esp + 0x10], 0
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x14]
push dword [esp + 0x64]
push dword [esp + 0x10]
push edx
push ebx
push dword [esp + 0x40]
call fcn.004f27f0
add esp, 0x14
mov dword [esp + 0x6c], eax
add eax, 0xc
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x60]
mov edx, eax
neg edx
test eax, eax
mov ecx, 0
cmovs eax, ecx
mov dword [esp + 0x60], eax
cmovns edx, ecx
mov dword [esp + 0x94], edx
mov eax, dword [esp + 0x18]
add eax, 1
mov dword [esp + 0x90], eax
and esi, 1
mov dword [esp + 0x8c], esi
mov dword [esp + 0xc], 0
jmp 0x4d0ffd
ucomisd xmm2, xmm3
ja 0x4d1857
mov dword [esp + 0xc], 0
cmp dword [esp + 0x10], 0
je 0x4d12d6
push dword [esp + 0x14]
call fcn.004f1170
add esp, 4
push dword [esp + 0x2c]
call fcn.004f1170
add esp, 4
push dword [esp + 0x50]
call fcn.004f1170
add esp, 4
push dword [esp + 0x30]
call fcn.004f1170
add esp, 4
mov esi, dword [esp + 0x6c]
push dword [esi + 4]
call fcn.004f1010
add esp, 4
mov dword [esp + 0x2c], eax
add eax, 0xc
mov ecx, dword [esi + 0x10]
lea ecx, [ecx*4 + 8]
push ecx
push dword [esp + 0x9c]
push eax
call sub.ntdll.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 4]
push dword [eax + 4]
call fcn.004f1010
add esp, 4
mov dword [esp + 0x14], eax
add eax, 0xc
mov ecx, dword [esp + 4]
mov edx, dword [ecx + 0x10]
add ecx, 0xc
lea edx, [edx*4 + 8]
push edx
push ecx
push eax
call sub.ntdll.dll_memcpy
add esp, 0xc
mov edi, dword [esp + 0x24]
mov ebx, edi
mov eax, dword [esp + 0xc]
sub ebx, eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], ecx
lea esi, [ecx + eax]
push 1
call fcn.004f1380
add esp, 4
mov dword [esp + 0x50], eax
test esi, esi
mov edx, esi
mov eax, 0
cmovns edx, eax
cmovs esi, eax
mov ecx, dword [esp + 0x60]
sub ecx, edx
mov eax, dword [esp + 0x94]
add esi, eax
sub edi, dword [esp + 0x18]
add edi, dword [esp + 0x30]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x44], ebx
sub edx, ebx
sub edi, dword [esp + 0x34]
mov ebx, 0
cmovge edi, ebx
add edi, edx
lea edx, [esi + edi]
add edi, ecx
cmp esi, ecx
mov ebx, edi
cmovl ebx, edx
cmp ebx, esi
mov dword [esp + 0x30], esi
cmovg ebx, esi
test ebx, ebx
mov ecx, 0
cmovs ebx, ecx
sub edx, ebx
test eax, eax
jle 0x4d1125
push eax
push dword [esp + 0x54]
mov dword [esp + 0x6c], edx
call fcn.004f1590
add esp, 8
mov esi, dword [esp + 0x14]
push esi
mov dword [esp + 0x54], eax
push eax
call fcn.004f1420
add esp, 8
mov dword [esp + 0x70], eax
push esi
call fcn.004f1170
mov edx, dword [esp + 0x68]
add esp, 4
mov eax, dword [esp + 0x70]
jmp 0x4d1129
mov eax, dword [esp + 0x14]
sub edx, dword [esp + 0xc]
test edx, edx
jle 0x4d1141
push edx
push eax
call fcn.004f1770
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x4d1160
mov dword [esp + 0x14], eax
jns 0x4d1160
neg edx
push edx
push eax
call fcn.004f2bf0
add esp, 8
nop word cs:[eax + eax]
nop dword [eax]
sub edi, ebx
mov eax, dword [esp + 0x60]
test eax, eax
mov esi, dword [esp + 0x4c]
jle 0x4d117d
push eax
push dword [esp + 0x30]
call fcn.004f1590
add esp, 8
jmp 0x4d1181
mov eax, dword [esp + 0x2c]
sub dword [esp + 0x30], ebx
test edi, edi
jle 0x4d1193
push edi
push eax
call fcn.004f1770
add esp, 8
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x30]
test ecx, ecx
jle 0x4d11af
push ecx
push ebx
mov edi, eax
call fcn.004f1770
add esp, 8
mov ebx, eax
mov eax, edi
mov dword [esp + 0x2c], eax
push eax
push dword [esp + 0x18]
call fcn.004f1a80
add esp, 8
cmp dword [eax + 0x10], 1
mov dword [esp + 0x30], eax
jg 0x4d11d4
cmp dword [eax + 0x14], 0
je 0x4d1a9d
mov edi, dword [eax + 0xc]
mov dword [eax + 0xc], 0
push ebx
push eax
call fcn.004f1a20
add esp, 8
test esi, esi
mov dword [esp + 0x50], ebx
je 0x4d121f
test eax, eax
jg 0x4d121f
mov eax, edi
xor eax, dword [esp + 0x8c]
mov ecx, dword [ebp + 0x14]
je 0x4d1794
test edi, edi
mov dword [esp + 0xc], eax
je 0x4d12eb
mov dword [esp + 8], 0x21
jmp 0x4d1361
test eax, eax
js 0x4d17ad
je 0x4d1810
push ebx
push dword [esp + 0x34]
call fcn.004f28c0
add esp, 8
fstp qword [esp + 0xc8]
movsd xmm1, qword [esp + 0xc8]
mov dword [esp + 0xc], 0
movsd xmm0, qword [0x50cdc8]
ucomisd xmm0, xmm1
jae 0x4d1359
mulsd xmm1, qword [0x50cdd0]
xor ebx, ebx
test edi, edi
sete bl
mov ecx, ebx
shl ecx, 4
add ecx, 0x10
movsd xmm0, qword [0x50cdd8]
ucomisd xmm0, xmm1
jbe 0x4d1525
cvttsd2si edx, xmm1
cvttpd2dq xmm0, xmm1
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
cmp esi, 2
je 0x4d1630
cmp esi, 1
je 0x4d1641
test esi, esi
mov edi, dword [esp + 0x18]
jne 0x4d1677
mov dword [esp + 0xc], 0
ucomisd xmm1, qword [0x50cdd0]
jb 0x4d137a
jmp 0x4d165f
push dword [esp + 4]
call fcn.004f2e30
add esp, 4
mov dword [esp + 0xc], eax
jmp 0x4d0fcd
mov dword [esp + 8], 0x11
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x34]
je 0x4d14d6
xor eax, eax
mov ecx, dword [esp + 0x18]
mov edx, ecx
cmp ecx, 0x20
jl 0x4d1334
xor eax, eax
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0x18]
nop dword [eax + eax]
cmp dword [ecx + eax*4 + 0x14], 0
jne 0x4d1359
add eax, 1
lea edx, [esi - 0x20]
cmp esi, 0x3f
mov esi, edx
jg 0x4d1320
mov ebx, dword [esp + 4]
cmp edx, 2
jl 0x4d18fa
mov esi, dword [ebx + eax*4 + 0x14]
bsf ecx, esi
shr esi, cl
mov dword [ebx + eax*4 + 0x14], esi
add edx, 0xffffffff
cmp ecx, edx
jge 0x4d18fa
test edi, edi
je 0x4d14d6
xor edx, edx
mov ecx, 0x20
movsd xmm0, qword [0x50cde0]
movapd xmm1, xmm0
xor ebx, ebx
mov edi, dword [esp + 0x18]
mov dword [esp + 0x64], edx
movapd xmmword [esp + 0xa0], xmm1
mov dword [esp + 0x88], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
add ecx, eax
mov dword [esp + 0x44], ecx
cmp dword [esp + 0x10], 0
movapd xmmword [esp + 0x70], xmm0
jne 0x4d13ce
mov esi, edi
sub esi, eax
jle 0x4d13ce
push esi
push dword [esp + 8]
call fcn.004f1770
movapd xmm0, xmmword [esp + 0x78]
add esp, 8
mov dword [esp + 4], eax
sub dword [esp + 0x28], esi
mov dword [esp + 0x24], edi
sub esp, 0x10
lea eax, [esp + 0x118]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xac]
mov dword [esp + 8], eax
movsd qword [esp], xmm0
call fcn.004f1d50
add esp, 0x10
mov edi, eax
mov eax, dword [esp + 0x9c]
test eax, eax
js 0x4d1411
je 0x4d141d
push eax
push edi
call fcn.004f1770
add esp, 8
mov edi, eax
jmp 0x4d141d
neg eax
push eax
push edi
call fcn.004f2bf0
add esp, 8
mov esi, dword [esp + 4]
test bl, bl
je 0x4d1484
push edi
push esi
call fcn.004f1a80
add esp, 8
mov dword [esp + 4], eax
cmp dword [esp + 0x10], 0
mov dword [esp + 0x10], 1
jne 0x4d157c
mov ecx, dword [esi + 0x10]
cmp dword [eax + 0x10], ecx
jl 0x4d1466
bsr edx, dword [eax + ecx*4 + 0x10]
xor edx, 0x1f
bsr ecx, dword [esi + ecx*4 + 0x10]
xor ecx, 0x1f
cmp edx, ecx
jbe 0x4d1623
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
cmp ebx, ecx
jne 0x4d1549
add dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x48], ecx
jmp 0x4d157c
push edi
push esi
call fcn.004f2e70
add esp, 8
mov dword [esp + 4], eax
mov ecx, dword [eax + 0x10]
cmp ecx, dword [esi + 0x10]
jg 0x4d14b2
bsr edx, dword [eax + ecx*4 + 0x10]
xor edx, 0x1f
bsr ecx, dword [esi + ecx*4 + 0x10]
xor ecx, 0x1f
cmp edx, ecx
jae 0x4d157c
cmp dword [esp + 0x10], 0
je 0x4d1506
mov eax, dword [esp + 0x24]
add eax, 1
mov dword [esp + 0x24], eax
xor ecx, ecx
cmp eax, dword [esp + 0x18]
setne cl
mov dword [esp + 0x10], ecx
jmp 0x4d157c
mov edi, dword [esp + 0x18]
xor edx, edx
mov bl, 1
mov ecx, 0x10
cmp dword [esp + 0x10], 0
je 0x4d1538
movsd xmm0, qword [0x50cde0]
movapd xmm1, xmm0
cmp dword [esp + 0x44], 1
jg 0x4d137a
jmp 0x4d1877
push 1
push eax
call fcn.004f2bf0
add esp, 8
add dword [esp + 0x28], 1
add dword [esp + 0x48], 1
mov dword [esp + 0x10], 0
jmp 0x4d1574
mov dword [esp + 0xc], 0
xor edx, edx
movapd xmm0, xmm1
jmp 0x4d1376
movsd xmm0, qword [0x50cde0]
movapd xmm1, xmm0
jmp 0x4d137a
push 1
push eax
call fcn.004f1770
add esp, 8
mov dword [esp + 4], eax
add dword [esp + 0x28], 0xffffffff
add ebx, 0xffffffff
mov dword [esp + 0x48], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x64], 0
push edi
call fcn.004f1170
add esp, 4
push esi
call fcn.004f1170
add esp, 4
cmp dword [esp + 0xc], 0
jne 0x4d1b32
cmp dword [esp + 0x64], 0
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
je 0x4d0fba
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x28]
cmp dword [esp + 0x44], eax
jne 0x4d0fba
movapd xmm3, xmmword [esp + 0x70]
mulsd xmm3, qword [0x50cde8]
movapd xmm2, xmmword [esp + 0xa0]
movapd xmm0, xmm2
addsd xmm0, qword [0x50cdf0]
movapd xmm1, xmm3
xorpd xmm1, xmmword [0x50ce00]
ucomisd xmm1, xmm0
ja 0x4d0fb0
ucomisd xmm0, xmm3
jbe 0x4d0fba
movapd xmm1, xmm3
movsd xmm0, qword [0x50cde0]
subsd xmm0, xmm3
ucomisd xmm0, qword [esp + 0xa0]
jbe 0x4d0fba
jmp 0x4d1857
mov dword [esp + 0x10], 0
jmp 0x4d157c
test edi, edi
jne 0x4d1645
mov dword [esp + 0xc], 0
jmp 0x4d1376
test edi, edi
jne 0x4d1634
mov dword [esp + 0xc], 0
ucomisd xmm1, qword [0x50ce10]
mov edi, dword [esp + 0x18]
jbe 0x4d137a
add edx, 1
mov eax, 0x30
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, edx
mov ecx, eax
jmp 0x4d137a
mov dword [esp + 0xc], 0
jmp 0x4d137a
test edi, edi
mov edx, dword [esp + 0x14]
jns 0x4d19c0
add ecx, edi
mov dword [esp + 0x24], ecx
jle 0x4d199d
neg edi
push edi
push dword [esp + 8]
call fcn.004f2bf0
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
add esp, 8
jmp 0x4d19c0
lea esi, [esp + 0x20]
push 0x50ceb9
push esi
call fcn.004f2980
mov ecx, dword [esp + 0x24]
add esp, 8
test eax, eax
mov ebx, dword [ebp + 0x10]
je case.0x4d0892.74
mov dword [esp + 8], 4
mov eax, dword [ebx + 8]
add eax, 1
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], 0
cmp byte [eax], 0x28
jne 0x4d0ed8
push dword [ebp + 0x18]
push ebx
push esi
call fcn.004f2fd0
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 8], eax
jmp 0x4d0ed8
mov dword [esp + 8], 6
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
jmp 0x4d1ca1
mov eax, 0xf
sub eax, ecx
mov ecx, edx
mov ebx, edx
mov edx, dword [0x50cf1c]
mulsd xmm1, qword [edx + eax*8]
sub ecx, eax
mulsd xmm1, qword [edx + ecx*8]
movapd xmmword [esp + 0x50], xmm1
movsd qword [esp + 0x38], xmm1
lea eax, [esp + 8]
lea ecx, [esp + 0x38]
mov edx, dword [ebp + 0x10]
push eax
push dword [esp + 0x50]
push 0
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.004d1e40
movapd xmm1, xmmword [esp + 0x64]
add esp, 0x14
movsd qword [esp + 0xf8], xmm1
test eax, eax
je 0x4d1867
mov edi, dword [ebp + 0xc]
jmp 0x4d1c9d
xor eax, eax
test edi, edi
sete al
shl eax, 4
add eax, 0x11
mov dword [esp + 8], eax
mov edi, dword [ebp + 0xc]
jmp 0x4d1b3c
xor eax, eax
test edi, edi
sete al
shl eax, 4
add eax, 0x11
mov dword [esp + 8], eax
cmp dword [esp + 0x44], 1
mov ecx, dword [ebp + 0x14]
jg 0x4d17a5
or edi, dword [esp + 0x10]
jne 0x4d17a5
mov esi, dword [esp + 0x48]
cmp esi, dword [esp + 0x34]
mov edi, dword [ebp + 0xc]
je 0x4d1b43
push 1
push dword [esp + 0x34]
call fcn.004f1770
add esp, 8
push ebx
mov dword [esp + 0x34], eax
push eax
call fcn.004f1a20
add esp, 8
mov ecx, 0x11
test eax, eax
jg 0x4d18bd
mov ecx, dword [ebp + 0x14]
jmp 0x4d1b43
test edi, edi
je 0x4d18a1
mov eax, 0x11
cmp dword [esp + 0x10], 0
je 0x4d1a74
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x24]
lea esi, [edx + 0x14]
mov ebx, ecx
sar ebx, 5
lea ebx, [edx + ebx*4]
add ebx, 0x14
cmp esi, ebx
jae 0x4d1a51
cmp dword [esi], 0xffffffff
lea esi, [esi + 4]
je 0x4d183e
mov ebx, dword [esp + 0x50]
jmp 0x4d1a74
mov eax, dword [esp + 0x88]
or dword [esp + 8], eax
jmp 0x4d1b38
xor eax, eax
mov esi, dword [esp + 0xfc]
mov edx, ebx
jmp 0x4d0c39
mov esi, dword [esp + 4]
mov edi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x50]
mov dword [esi + 0x10], 0
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], eax
mov dword [esp + 8], 0x50
mov ecx, dword [ebp + 0x14]
jmp 0x4d1b3c
mov eax, 0x21
mov ecx, 1
cmp dword [esp + 0x44], 1
jne 0x4d1a74
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x48]
mov dword [esp + 8], ecx
cmp esi, dword [esp + 0x34]
jne 0x4d1aa8
mov dword [esp + 8], 0x21
mov eax, dword [esp + 4]
cmp dword [eax + 0x10], 1
jne 0x4d1d95
mov eax, dword [eax + 0x14]
cmp eax, 1
mov ecx, dword [esp + 0x68]
cmove ecx, eax
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 0x14]
jmp 0x4d1b3c
mov eax, dword [esp + 0x48]
add eax, 0xffffffff
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
lea esi, [eax + 0x1f]
sar esi, 5
cmp dword [ebx + 4], esi
jge 0x4d192c
push ebx
call fcn.004f1170
add esp, 4
push esi
call fcn.004f1010
add esp, 4
mov ebx, eax
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x18]
mov edx, eax
sar edx, 5
xor ecx, ecx
and eax, 0x1f
mov dword [esp + 0xc], eax
setne cl
lea eax, [ebx + 0x14]
add ecx, edx
mov dword [ebx + 0x10], ecx
jle 0x4d197f
lea ecx, [ebx + ecx*4]
add ecx, 0x14
lea edx, [ebx + 0x18]
cmp ecx, edx
cmova edx, ecx
sub edx, ebx
lea esi, [edx - 0x15]
and esi, 0xfffffffc
add edx, 0xffffffef
and edx, 0xfffffffc
push edx
push 0xff
push eax
call sub.ntdll.dll_memset
add esp, 0xc
lea eax, [ebx + esi]
add eax, 0x18
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0xc]
test edx, edx
je 0x4d1994
mov cl, 0x20
sub cl, dl
shr dword [eax - 4], cl
mov ecx, dword [ebp + 0x14]
mov dword [esp + 4], ebx
jmp 0x4d1b38
cmp ecx, 0xfffffffe
jle 0x4d19e6
mov dword [esp + 0x24], 1
mov eax, dword [esp + 4]
mov dword [eax + 0x10], 1
mov dword [eax + 0x14], 1
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], 1
cmp dword [esp + 0x68], 0
je 0x4d1a48
mov ecx, dword [esp + 0x48]
add ecx, 1
cmp ecx, eax
mov dword [esp + 0x48], eax
jge 0x4d0f4a
mov eax, dword [esp + 4]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x34]
mov dword [eax], ecx
mov dword [esp + 8], 0x50
mov edi, dword [ebp + 0xc]
cmp dword [esp + 0x68], 0
jne 0x4d1c7f
mov eax, dword [esp + 8]
mov ecx, eax
and ecx, 0xfffffff8
mov edx, dword [esp + 4]
xor ebx, ebx
cmp dword [edx + 0x10], 0
setg bl
lea ecx, [ecx + ebx*2]
mov dword [esp + 8], ecx
test al, 0x30
je 0x4d1c9d
or ecx, 0x40
mov dword [esp + 8], ecx
jmp 0x4d1c92
mov dword [esp + 0x48], eax
jmp 0x4d0f4a
and ecx, 0x1f
mov ebx, dword [esp + 0x50]
je 0x4d1d5b
mov ebx, 0xffffffff
shl ebx, cl
or ebx, dword [esi]
cmp ebx, 0xffffffff
mov ebx, dword [esp + 0x50]
je 0x4d1d5b
mov dword [esp + 8], eax
cmp dword [esp + 0x10], 0
jne 0x4d1a8d
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x18]
jl 0x4d1d8a
mov esi, dword [esp + 4]
mov ecx, dword [esi + 0x14]
test cl, 1
jne 0x4d1ce6
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
jmp 0x4d1b3c
mov eax, dword [esp + 0x18]
sub dword [esp + 0x28], eax
mov edi, dword [esp + 4]
mov dword [esp + 0x24], eax
lea esi, [eax + 0x1f]
sar esi, 5
cmp dword [edi + 4], esi
jge 0x4d1ad7
push edi
call fcn.004f1170
add esp, 4
push esi
call fcn.004f1010
add esp, 4
mov edi, eax
mov ebx, dword [esp + 0x18]
mov edx, ebx
sar edx, 5
xor ecx, ecx
and ebx, 0x1f
setne cl
lea eax, [edi + 0x14]
add ecx, edx
mov dword [edi + 0x10], ecx
jle 0x4d1b23
lea ecx, [edi + ecx*4]
add ecx, 0x14
lea edx, [edi + 0x18]
cmp ecx, edx
cmova edx, ecx
sub edx, edi
lea esi, [edx - 0x15]
and esi, 0xfffffffc
add edx, 0xffffffef
and edx, 0xfffffffc
push edx
push 0xff
push eax
call sub.ntdll.dll_memset
add esp, 0xc
lea eax, [edi + esi]
add eax, 0x18
test ebx, ebx
je 0x4d1b2e
mov cl, 0x20
sub cl, bl
shr dword [eax - 4], cl
mov dword [esp + 4], edi
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
mov ebx, dword [esp + 0x50]
cmp dword [esp + 0x10], 0
jne 0x4d1b82
mov dword [esp + 0x10], 0
mov esi, dword [esp + 0x18]
sub esi, dword [esp + 0x24]
je 0x4d1b82
mov eax, dword [esp + 4]
test esi, esi
jle 0x4d1b6d
push esi
push eax
call fcn.004f1770
add esp, 8
mov dword [esp + 4], eax
jmp 0x4d1b7b
mov ecx, esi
neg ecx
push ecx
push eax
call fcn.004f2bf0
add esp, 8
sub dword [esp + 0x28], esi
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x28]
mov dword [ecx], eax
push dword [esp + 0x14]
call fcn.004f1170
add esp, 4
push dword [esp + 0x2c]
call fcn.004f1170
add esp, 4
push ebx
call fcn.004f1170
add esp, 4
push dword [esp + 0x6c]
call fcn.004f1170
add esp, 4
push dword [esp + 0x30]
call fcn.004f1170
add esp, 4
mov eax, dword [esp + 0x28]
mov ecx, dword [ebp + 0x10]
cmp eax, dword [ecx + 8]
jle 0x4d1c69
mov eax, ecx
mov eax, dword [ecx + 0xc]
and eax, 3
cmp eax, 1
mov ecx, dword [esp + 0x1c]
je 0x4d0eb3
cmp eax, 3
je 0x4d1bf9
cmp eax, 2
jne 0x4d1c01
test ecx, ecx
jne 0x4d1c01
jmp 0x4d0eb3
test ecx, ecx
jne 0x4d0eb3
push dword [esp + 4]
call fcn.004f1170
add esp, 4
mov dword [esp + 4], 0
mov dword [esp + 8], 0x11
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 8]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov ebx, dword [edx]
lea eax, [ebx + 0x1f]
sar eax, 5
mov edx, dword [ebp + 0x18]
lea esi, [edx + eax*4]
test ebx, ebx
jle 0x4d1c5d
lea eax, [edx + 4]
cmp esi, eax
cmova eax, esi
mov ecx, edx
not ecx
add eax, ecx
add eax, 4
and eax, 0xfffffffc
push eax
push 0xff
push edx
call sub.ntdll.dll_memset
add esp, 0xc
and ebx, 0x1f
je 0x4d1c69
mov cl, 0x20
sub cl, bl
shr dword [esi - 4], cl
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x10], 0
je 0x4d1ca1
cmp dword [esp + 0x68], 0
je 0x4d1a17
mov eax, dword [esp + 4]
mov dword [eax + 0x10], 0
mov dword [esp + 8], 0x50
call sub.api_ms_win_crt_runtime_l1_1_0.dll__errno
mov dword [eax], 0x22
mov ecx, dword [esp + 0x1c]
test edi, edi
je 0x4d1cab
mov eax, dword [esp + 0x20]
mov dword [edi], eax
test ecx, ecx
mov ecx, dword [ebp + 0x18]
je 0x4d1cb7
or byte [esp + 8], 8
mov eax, dword [esp + 4]
test eax, eax
mov edx, dword [esp + 0x18]
je 0x4d1cda
push eax
push edx
push ecx
call fcn.004f29d0
add esp, 0xc
push dword [esp + 4]
call fcn.004f1170
add esp, 4
mov eax, dword [esp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea edx, [esi + 0x14]
test edi, edi
je 0x4d1d9d
mov eax, dword [esi + 0x10]
cmp ecx, 0xffffffff
mov edi, dword [ebp + 0xc]
jne 0x4d1d24
lea edi, [esi + eax*4]
add edi, 0x14
lea edx, [esi + 0x18]
mov dword [edx - 4], 0
cmp edx, edi
jae 0x4d1de9
mov ecx, dword [edx]
add edx, 4
cmp ecx, 0xffffffff
je 0x4d1d05
add edx, 0xfffffffc
mov edi, dword [ebp + 0xc]
add ecx, 1
mov dword [edx], ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 0x24]
mov edx, ecx
neg edx
and edx, 0x1f
bsr eax, dword [esi + eax*4 + 0x10]
xor eax, 0x1f
cmp eax, edx
je 0x4d1d4b
add ecx, 1
mov dword [esp + 0x24], ecx
mov dword [esp + 8], 0x21
mov ecx, dword [ebp + 0x14]
jmp 0x4d1b3c
mov dword [edx + 0x10], 1
mov dword [edx + 0x14], 1
mov dword [esp + 0x24], 1
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
add eax, ecx
add eax, 0xffffffff
mov dword [esp + 0x28], eax
mov dword [esp + 8], 0x21
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
jmp 0x4d1b43
mov ecx, dword [ebp + 0x14]
jmp 0x4d1b3c
cmp dword [esp + 0x44], 1
mov edi, dword [ebp + 0xc]
je 0x4d1882
test ecx, ecx
jne 0x4d1dd4
mov eax, dword [esi + 0x10]
lea eax, [esi + eax*4]
add eax, 0x14
add esi, 0x18
mov dword [esi - 4], 0xffffffff
cmp esi, eax
jae 0x4d1dd9
mov ecx, dword [esi]
add esi, 4
test ecx, ecx
je 0x4d1dbb
add esi, 0xfffffffc
mov edx, esi
add ecx, 0xffffffff
mov dword [edx], ecx
mov dword [esp + 8], 0x11
mov ecx, dword [ebp + 0x14]
jmp 0x4d1b3c
cmp eax, dword [esi + 8]
jl 0x4d1e28
mov eax, dword [esi + 4]
add eax, 1
push eax
call fcn.004f1010
add esp, 4
mov edi, eax
add eax, 0xc
lea ecx, [esi + 0xc]
mov edx, dword [esi + 0x10]
lea edx, [edx*4 + 8]
push edx
push ecx
push eax
call sub.ntdll.dll_memcpy
add esp, 0xc
push esi
call fcn.004f1170
add esp, 4
mov eax, dword [edi + 0x10]
mov esi, edi
lea ecx, [eax + 1]
mov dword [esi + 0x10], ecx
mov dword [esi + eax*4 + 0x14], 1
mov eax, ecx
mov edi, dword [ebp + 0xc]
jmp 0x4d1d29