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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xf0
mov ebx, dword [ebp + 0xc]
mov edi, ecx
test edx, edx
mov dword [esp + 0x5c], edx
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x28], 0
je 0x4d2d8e
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
movzx eax, word [ecx + 8]
mov edx, eax
and edx, 0x3f
movzx edx, byte [edx + 0x50cfda]
dec edx
cmp edx, 1
ja 0x4d2dc3
test al, 8
jne 0x4d2e01
test al, 0x24
je 0x4d4209
fild qword [ecx]
fstp qword [esp + 0xe0]
movsd xmm0, qword [esp + 0xe0]
jmp 0x4d2e05
mov esi, dword [edi + 0xc]
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
mov edx, ecx
or edx, eax
je 0x4d4146
cmp ecx, 1
mov dword [ebx + 4], eax
mov dword [ebx], ecx
sbb eax, 0
jl 0x4d41fc
mov byte [ebx + 0x28], 1
mov dword [esp + 0xc], 0
jmp 0x4d433d
test ecx, ecx
je 0x4d41fc
mov edx, eax
and edx, 0x202
cmp edx, 0x202
jne 0x4d3ffd
cmp byte [ecx + 0xa], 1
jne 0x4d3ffd
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0xc], 1
test ebx, ebx
jne 0x4d4021
jmp 0x4d433d
movsd xmm0, qword [ecx]
xorpd xmm1, xmm1
movsd qword [ebx + 0x20], xmm0
mov dword [esp + 0x10], edi
mov byte [ebx + 0x29], 1
ucomisd xmm0, xmm1
jb 0x4d2e83
movsd xmm1, qword [0x50c6d8]
ucomisd xmm1, xmm0
jbe 0x4d2e83
mulsd xmm0, qword [0x50c6d0]
addsd xmm0, qword [0x50c6e0]
movsd qword [esp + 0x80], xmm0
fld qword [esp + 0x80]
fnstcw word [esp + 0x2c]
movzx eax, word [esp + 0x2c]
or eax, 0xc00
mov word [esp + 0x58], ax
fldcw word [esp + 0x58]
fistp qword [esp + 0x80]
fldcw word [esp + 0x2c]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov byte [ebx + 0x28], 1
cmp dword [esp + 0x5c], 2
jl 0x4d4328
lea eax, [ebx + 0x2a]
lea ecx, [ebx + 0x2e]
mov esi, 1
mov dword [esp + 4], eax
mov dword [esp + 0x4c], ecx
nop word cs:[eax + eax]
nop dword [eax + eax]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + esi*4]
movzx eax, word [ecx + 8]
mov edx, eax
and edx, 0x202
cmp edx, 0x202
jne 0x4d2ee0
cmp byte [ecx + 0xa], 1
jne 0x4d2ee0
mov edi, dword [ecx + 0x10]
jmp 0x4d2ef8
xor edi, edi
test al, 1
jne 0x4d2ef8
mov edx, 1
call fcn.0044b800
mov ecx, dword [ebp + 8]
mov edi, eax
mov ecx, dword [ecx + esi*4]
movzx eax, word [ecx + 8]
test al, 2
je 0x4d2f06
cmp byte [ecx + 0xa], 1
je 0x4d2f14
test al, 0x11
jne 0x4d2f14
mov edx, 1
call fcn.0044b7e0
test edi, edi
mov dword [esp + 0xc], 1
je 0x4d433d
mov dword [esp], 1
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 8], esi
movzx eax, byte [edi]
mov cl, byte [eax + 0x50ce7b]
add cl, 0xd5
cmp cl, 0x4c
ja case.0x4d2f57.212
movzx ecx, cl
jmp dword [ecx*4 + 0x50c760]
mov esi, 1
nop word cs:[eax + eax]
nop dword [eax]
movzx eax, byte [edi + esi]
test eax, eax
je 0x4d2f90
cmp al, 0x3a
je 0x4d2f90
test byte [eax + 0x50d0f3], 1
jne 0x4d2f90
inc esi
jmp 0x4d2f70
mov ecx, edi
lea edx, [esp + 0x18]
push 1
push esi
call fcn.0044c170
add esp, 8
test eax, eax
jle 0x4d41fc
add esi, edi
movzx eax, byte [esi]
cmp eax, 0x3a
jne 0x4d3090
movzx eax, byte [edi]
lea ecx, [edi + 1]
xorpd xmm0, xmm0
lea edx, [esp + 0xa0]
movapd xmmword [esp + 0xc0], xmm0
movapd xmmword [esp + 0xb0], xmm0
movapd xmmword [esp + 0xa0], xmm0
add eax, 0xffffffd0
cmp eax, 9
cmovbe ecx, edi
call fcn.004d4650
test eax, eax
jne case.0x4d2f57.212
lea ecx, [esp + 0xa0]
call fcn.004d4430
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
mov edx, 0xfd6cd200
add ecx, edx
adc eax, 0xffffffff
push 0
push 0x5265c00
push eax
push ecx
call fcn.004fb390
add esp, 0x10
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov ebx, eax
mov esi, edx
cmp byte [edi], 0x2d
jne 0x4d305e
neg ebx
mov eax, 0
sbb eax, esi
mov dword [esp + 0xa0], ebx
mov esi, eax
mov dword [esp + 0xa4], eax
mov edi, dword [ebp + 0xc]
mov ecx, edi
call fcn.004d4430
mov word [edi + 0x2a], 0
mov byte [edi + 0x2c], 0
add dword [edi], ebx
mov ebx, edi
adc dword [edi + 4], esi
mov dword [esp], 0
jmp case.0x4d2f57.212
test byte [eax + 0x50d0f3], 1
je 0x4d30a0
movzx eax, byte [esi + 1]
inc esi
jmp 0x4d3090
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
lea ecx, [eax - 3]
cmp ecx, 7
ja case.0x4d2f57.212
mov cl, byte [esi + eax - 1]
lea edi, [eax - 1]
and cl, 0xdf
cmp cl, 0x53
mov ecx, ebx
cmovne edi, eax
call fcn.004d4430
movsd xmm2, qword [esp + 0x18]
xorpd xmm0, xmm0
xor eax, eax
mov dword [esp], 1
mov dword [esp + 0x60], edi
ucomisd xmm0, xmm2
seta al
xor ecx, ecx
movsd xmm3, qword [eax*8 + 0x50c6e8]
lea eax, [edi + 1]
mov dword [esp + 0x9c], eax
jmp 0x4d311a
inc ecx
cmp ecx, 6
je 0x4d3d96
lea eax, [ecx + ecx*2]
mov dword [esp + 0x14], eax
movzx eax, byte [eax*8 + 0x516c31]
cmp dword [esp + 0x60], eax
jne 0x4d3110
cmp dword [esp + 0x60], 0
jle 0x4d318e
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x9c]
xor edx, edx
mov eax, dword [eax*8 + 0x516c34]
mov dword [esp + 0x30], eax
nop
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + edx]
test eax, eax
je 0x4d317b
movzx ebx, byte [eax + 0x50ce7b]
movzx eax, byte [esi + edx]
movzx eax, byte [eax + 0x50ce7b]
cmp bl, al
jne 0x4d3187
dec edi
inc edx
cmp edi, 1
jg 0x4d3150
jmp 0x4d318e
movzx eax, byte [esi + edx]
xor ebx, ebx
mov al, byte [eax + 0x50ce7b]
movzx eax, al
cmp ebx, eax
jne 0x4d3110
mov eax, dword [esp + 0x14]
movsd xmm0, qword [eax*8 + 0x516c38]
movapd xmm1, xmm0
xorpd xmm1, xmmword [0x50c700]
ucomisd xmm2, xmm1
jbe 0x4d3110
ucomisd xmm0, xmm2
jbe 0x4d3110
mov eax, dword [esp + 0x14]
movsd qword [esp + 0xd8], xmm3
mov al, byte [eax*8 + 0x516c30]
cmp al, 2
je 0x4d351f
cmp al, 1
jne 0x4d35ae
mov eax, dword [esp + 4]
mov edi, dword [ebp + 0xc]
cmp byte [eax], 0
jne 0x4d3a81
cmp byte [edi + 0x28], 0
je 0x4d3966
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edx, 0x1072fdff
mov esi, 0x1a640
cmp edx, eax
sbb esi, ecx
jae 0x4d399a
mov eax, dword [esp + 0x4c]
mov dword [edi + 4], 0
mov dword [edi], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x28], 0
jmp 0x4d3a7e
mov ecx, 1
jmp 0x4d329b
movzx eax, al
movzx eax, byte [eax + 0x50ce7b]
cmp al, byte [edx + 0x50ce7b]
jne case.0x4d2f57.212
movzx eax, byte [edi + ecx]
inc ecx
movzx edx, byte [ecx + 0x516bf0]
cmp al, dl
jne 0x4d3280
test al, al
jne 0x4d3296
mov ecx, dword [esp + 0x10]
call fcn.004d4820
test eax, eax
je case.0x4d2f57.212
mov ecx, ebx
call fcn.004d4430
mov edx, dword [esp + 0x10]
mov eax, esp
mov ecx, ebx
push eax
call fcn.004d49d0
add esp, 4
add dword [ebx], eax
adc dword [ebx + 4], edx
jmp 0x4d3d99
test al, al
je 0x4d3509
xor edx, edx
nop word [eax + eax]
cmp edx, 8
je 0x4d35d6
movzx eax, byte [edi + edx + 1]
mov ecx, edx
test eax, eax
je 0x4d35bc
movzx eax, byte [eax + 0x50ce7b]
movzx esi, byte [ecx + 0x516c13]
lea edx, [ecx + 1]
cmp al, byte [esi + 0x50ce7b]
je 0x4d32f0
lea ecx, [ecx + 0x516c13]
jmp 0x4d35c4
mov ecx, 1
mov edx, eax
jmp 0x4d335b
movzx edx, dl
movzx edx, byte [edx + 0x50ce7b]
cmp dl, byte [ebx + 0x50ce7b]
jne 0x4d3460
movzx edx, byte [edi + ecx]
inc ecx
movzx ebx, byte [ecx + 0x516bfa]
cmp dl, bl
jne 0x4d3340
test dl, dl
jne 0x4d3356
mov ecx, dword [ebp + 0xc]
cmp byte [ecx + 0x29], 0
je 0x4d3460
mov ebx, dword [ebp + 0xc]
movsd xmm0, qword [ebx + 0x20]
mulsd xmm0, qword [0x50c738]
addsd xmm0, qword [0x50c748]
movsd qword [esp + 0x18], xmm0
ucomisd xmm0, qword [0x50c758]
jb case.0x4d2f57.212
movsd xmm1, qword [0x50c750]
ucomisd xmm1, xmm0
jbe case.0x4d2f57.212
addsd xmm0, qword [0x50c6e0]
mov byte [ebx + 0x2c], 0
movsd qword [esp + 0x70], xmm0
fld qword [esp + 0x70]
fnstcw word [esp + 0x26]
movzx eax, word [esp + 0x26]
or eax, 0xc00
mov word [esp + 0x52], ax
fldcw word [esp + 0x52]
fistp qword [esp + 0x70]
fldcw word [esp + 0x26]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 0x28], 1
jmp 0x4d3fed
xor ecx, ecx
test al, al
je 0x4d3515
mov esi, 1
nop word cs:[eax + eax]
nop dword [eax]
cmp esi, 8
je 0x4d3626
movzx edx, byte [edi + esi]
mov eax, esi
test edx, edx
je 0x4d360e
movzx edx, byte [edx + 0x50ce7b]
movzx ebx, byte [eax + str.weekday]
lea esi, [eax + 1]
cmp dl, byte [ebx + 0x50ce7b]
mov ebx, dword [ebp + 0xc]
je 0x4d3420
lea eax, [eax + str.weekday]
mov ecx, edx
jmp 0x4d3614
mov ebx, dword [ebp + 0xc]
mov ecx, 1
jmp 0x4d348b
movzx eax, al
movzx eax, byte [eax + 0x50ce7b]
cmp al, byte [edx + 0x50ce7b]
jne case.0x4d2f57.212
movzx eax, byte [edi + ecx]
inc ecx
movzx edx, byte [ecx + 0x516c04]
cmp al, dl
jne 0x4d3470
test al, al
jne 0x4d3486
mov ecx, dword [esp + 0x10]
call fcn.004d4820
test eax, eax
je case.0x4d2f57.212
cmp byte [ebx + 0x2d], 0
jne 0x4d3fed
mov ecx, ebx
call fcn.004d4430
mov edx, dword [esp + 0x10]
mov eax, esp
mov ecx, ebx
push eax
call fcn.004d49d0
add esp, 4
cmp dword [esp], 0
jne 0x4d3500
sub dword [ebx], eax
mov edi, edx
mov esi, eax
mov eax, esp
mov ecx, ebx
sbb dword [ebx + 4], edx
mov word [ebx + 0x2a], 0
mov byte [ebx + 0x2c], 0
mov edx, dword [esp + 0x10]
push eax
call fcn.004d49d0
add esp, 4
sub esi, eax
sbb edi, edx
add dword [ebx], esi
adc dword [ebx + 4], edi
mov byte [ebx + 0x2d], 1
jmp case.0x4d2f57.212
xor eax, eax
mov ecx, str.start_of
jmp 0x4d35c4
mov eax, str.weekday
jmp 0x4d3614
mov eax, dword [esp + 4]
cmp byte [eax], 0
jne 0x4d3c5c
mov edi, dword [ebp + 0xc]
cmp byte [edi + 0x28], 0
je 0x4d3980
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edx, 0x1072fdff
mov esi, 0x1a640
cmp edx, eax
sbb esi, ecx
jae 0x4d3b75
mov eax, dword [esp + 0x4c]
mov dword [edi + 4], 0
mov dword [edi], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x28], 0
jmp 0x4d3c59
mov edi, dword [ebp + 0xc]
movapd xmmword [esp + 0x30], xmm2
jmp 0x4d3d32
lea ecx, [ecx + 0x516c13]
xor eax, eax
movzx ecx, byte [ecx]
movzx ecx, byte [ecx + 0x50ce7b]
cmp eax, ecx
jne case.0x4d2f57.212
cmp byte [ebx + 0x28], 0
je 0x4d35f5
mov eax, dword [esp + 4]
add edi, 9
cmp byte [eax], 0
je 0x4d3718
mov esi, dword [esp + 8]
jmp 0x4d3894
mov eax, dword [esp + 4]
cmp byte [eax], 0
je 0x4d3791
mov esi, dword [esp + 8]
add edi, 9
jmp 0x4d3894
lea eax, [eax + str.weekday]
movzx eax, byte [eax]
movzx eax, byte [eax + 0x50ce7b]
cmp ecx, eax
jne case.0x4d2f57.212
add edi, 8
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
mov ecx, edi
lea edx, [esp + 0x18]
push 1
push eax
call fcn.0044c170
add esp, 8
test eax, eax
jle case.0x4d2f57.212
movsd xmm0, qword [esp + 0x18]
movsd xmm1, qword [0x50c740]
ucomisd xmm1, xmm0
jbe case.0x4d2f57.212
cvttsd2si edi, xmm0
test edi, edi
js case.0x4d2f57.212
cvttpd2dq xmm1, xmm0
cvtdq2pd xmm1, xmm1
ucomisd xmm0, xmm1
jne case.0x4d2f57.212
jp case.0x4d2f57.212
mov eax, dword [esp + 4]
cmp byte [eax], 0
jne 0x4d3eb6
cmp byte [ebx + 0x28], 0
je 0x4d3dc1
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov edx, 0x1072fdff
mov esi, 0x1a640
cmp edx, eax
sbb esi, ecx
jae 0x4d3ddb
mov eax, dword [esp + 0x4c]
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x28], 0
jmp 0x4d3eb3
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov edx, 0x1072fdff
mov esi, 0x1a640
cmp edx, eax
sbb esi, ecx
jae 0x4d37b8
mov esi, dword [esp + 8]
mov dword [ebx + 0x2c], 0
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x28], 0
mov byte [ebx + 0x2e], 1
jmp 0x4d3894
cmp byte [ebx + 0x2b], 0
je case.0x4d2f57.212
mov dword [ebx + 8], 0x7d0
mov dword [ebx + 0xc], 1
add edi, 9
mov dword [ebx + 0x10], 1
jmp 0x4d3889
add eax, 0x2932e00
adc ecx, 0
push 0
push 0x5265c00
push ecx
push eax
call fcn.004fb230
add esp, 0x10
cvtsi2sd xmm0, eax
mov ecx, eax
movsd xmm2, qword [0x50c730]
addsd xmm0, qword [0x50c710]
divsd xmm0, qword [0x50c718]
cvttsd2si eax, xmm0
lea edx, [eax + 3]
test eax, eax
cmovns edx, eax
add ecx, eax
sar edx, 2
sub ecx, edx
mov edx, 0x51eb851f
add ecx, 0x5f5
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
addsd xmm0, qword [0x50c720]
divsd xmm0, qword [0x50c728]
cvttsd2si esi, xmm0
mov eax, esi
and eax, 0x7fff
imul eax, eax, 0x8ead
mul edx
shr edx, 5
sub ecx, edx
mov edx, 0xffffffff
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
divsd xmm0, xmm2
cvttpd2dq xmm1, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm2
cvttsd2si eax, xmm1
sub ecx, eax
cvttsd2si eax, xmm0
mov dword [ebx + 0x10], ecx
cmp eax, 0xe
mov ecx, 0xfffffff3
cmovl ecx, edx
add ecx, eax
xor eax, eax
cmp ecx, 2
mov dword [ebx + 0xc], ecx
setg al
neg eax
lea eax, [esi + eax - 0x126b]
mov dword [ebx + 8], eax
mov esi, dword [esp + 8]
mov eax, dword [esp + 4]
mov byte [eax], 1
xor eax, eax
mov word [ebx + 0x2b], 1
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x20], 0
mov word [ebx + 0x28], 0
jmp 0x4d38c9
test cl, cl
je 0x4d3953
inc eax
movzx ecx, byte [edi + eax]
movzx edx, byte [eax + str.month]
cmp cl, dl
je 0x4d38c0
movzx ecx, byte [ecx + 0x50ce7b]
cmp cl, byte [edx + 0x50ce7b]
je 0x4d38c8
xor eax, eax
jmp 0x4d38f5
test cl, cl
je 0x4d394c
inc eax
movzx ecx, byte [edi + eax]
movzx edx, byte [eax + str.year]
cmp cl, dl
je 0x4d38f0
movzx ecx, byte [ecx + 0x50ce7b]
cmp cl, byte [edx + 0x50ce7b]
je 0x4d38f4
xor eax, eax
jmp 0x4d3934
movzx ecx, byte [ecx + 0x50ce7b]
cmp cl, byte [edx + 0x50ce7b]
jne case.0x4d2f57.212
inc eax
movzx ecx, byte [edi + eax]
movzx edx, byte [eax + 0x516c27]
cmp cl, dl
jne 0x4d3920
test cl, cl
jne 0x4d3933
jmp 0x4d3fed
mov dword [ebx + 0xc], 1
mov dword [ebx + 0x10], 1
mov dword [esp], 0
jmp 0x4d3db1
mov dword [edi + 8], 0x7d0
mov dword [edi + 0xc], 1
mov dword [edi + 0x10], 1
jmp 0x4d3a7a
mov dword [edi + 8], 0x7d0
mov dword [edi + 0xc], 1
mov dword [edi + 0x10], 1
jmp 0x4d3c55
add eax, 0x2932e00
adc ecx, 0
push 0
push 0x5265c00
push ecx
push eax
movapd xmmword [esp + 0x40], xmm2
call fcn.004fb230
add esp, 0x10
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mov ecx, eax
movsd xmm2, qword [0x50c730]
mov ebx, 0xfffffff3
addsd xmm0, qword [0x50c710]
divsd xmm0, qword [0x50c718]
cvttsd2si eax, xmm0
lea edx, [eax + 3]
test eax, eax
cmovns edx, eax
add ecx, eax
sar edx, 2
sub ecx, edx
mov edx, 0x51eb851f
add ecx, 0x5f5
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
addsd xmm0, qword [0x50c720]
divsd xmm0, qword [0x50c728]
cvttsd2si esi, xmm0
mov eax, esi
and eax, 0x7fff
imul eax, eax, 0x8ead
mul edx
shr edx, 5
sub ecx, edx
mov edx, 0xffffffff
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
divsd xmm0, xmm2
cvttpd2dq xmm1, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm2
movapd xmm2, xmmword [esp + 0x30]
cvttsd2si eax, xmm1
sub ecx, eax
cvttsd2si eax, xmm0
cmp eax, 0xe
mov dword [edi + 0x10], ecx
cmovl ebx, edx
add ebx, eax
xor eax, eax
cmp ebx, 2
mov dword [edi + 0xc], ebx
setg al
neg eax
lea eax, [esi + eax - 0x126b]
mov dword [edi + 8], eax
mov eax, dword [esp + 4]
mov byte [eax], 1
cmp byte [edi + 0x2b], 0
jne 0x4d3b32
mov ecx, edi
movapd xmmword [esp + 0x30], xmm2
call fcn.004d4430
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov edx, 0x2932e00
add ecx, edx
adc eax, 0
push 0
push 0x5265c00
push eax
push ecx
call fcn.004fb390
add esp, 0x10
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mov edx, 0x91a2b3c5
divsd xmm0, qword [0x50c738]
cvttsd2si ecx, xmm0
cvttpd2dq xmm2, xmm0
mov eax, ecx
cvtdq2pd xmm2, xmm2
imul edx
subsd xmm0, xmm2
movapd xmm2, xmmword [esp + 0x30]
add edx, ecx
mov eax, edx
sar edx, 0xb
shr eax, 0x1f
add edx, eax
imul esi, edx, 0xfffff1f0
mov dword [edi + 0x14], edx
add esi, ecx
mov ecx, 0x88888889
mov eax, esi
imul ecx
add edx, esi
mov eax, edx
sar edx, 5
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xffffffc4
mov dword [edi + 0x18], edx
add eax, esi
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
addsd xmm1, xmm0
movsd qword [edi + 0x20], xmm1
mov byte [edi + 0x29], 0
mov byte [edi + 0x2b], 1
cvttsd2si ecx, xmm2
mov eax, 0xfffffff4
mov edx, 0xffffffff
cvttpd2dq xmm0, xmm2
add ecx, dword [edi + 0xc]
cvtdq2pd xmm0, xmm0
test ecx, ecx
cmovg eax, edx
mov edx, 0x2aaaaaab
add eax, ecx
imul edx
mov eax, edx
sar edx, 1
shr eax, 0x1f
add edx, eax
add dword [edi + 8], edx
shl edx, 2
lea eax, [edx + edx*2]
sub ecx, eax
mov dword [edi + 0xc], ecx
jmp 0x4d3d1e
add eax, 0x2932e00
adc ecx, 0
push 0
push 0x5265c00
push ecx
push eax
movapd xmmword [esp + 0x40], xmm2
call fcn.004fb230
add esp, 0x10
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mov ecx, eax
movsd xmm2, qword [0x50c730]
mov ebx, 0xfffffff3
addsd xmm0, qword [0x50c710]
divsd xmm0, qword [0x50c718]
cvttsd2si eax, xmm0
lea edx, [eax + 3]
test eax, eax
cmovns edx, eax
add ecx, eax
sar edx, 2
sub ecx, edx
mov edx, 0x51eb851f
add ecx, 0x5f5
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
addsd xmm0, qword [0x50c720]
divsd xmm0, qword [0x50c728]
cvttsd2si esi, xmm0
mov eax, esi
and eax, 0x7fff
imul eax, eax, 0x8ead
mul edx
shr edx, 5
sub ecx, edx
mov edx, 0xffffffff
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
divsd xmm0, xmm2
cvttpd2dq xmm1, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm2
movapd xmm2, xmmword [esp + 0x30]
cvttsd2si eax, xmm1
sub ecx, eax
cvttsd2si eax, xmm0
cmp eax, 0xe
mov dword [edi + 0x10], ecx
cmovl ebx, edx
add ebx, eax
xor eax, eax
cmp ebx, 2
mov dword [edi + 0xc], ebx
setg al
neg eax
lea eax, [esi + eax - 0x126b]
mov dword [edi + 8], eax
mov eax, dword [esp + 4]
mov byte [eax], 1
mov edi, dword [ebp + 0xc]
cvttsd2si ebx, xmm2
cmp byte [edi + 0x2b], 0
jne 0x4d3d14
mov ecx, edi
movapd xmmword [esp + 0x30], xmm2
call fcn.004d4430
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov edx, 0x2932e00
add ecx, edx
adc eax, 0
push 0
push 0x5265c00
push eax
push ecx
call fcn.004fb390
add esp, 0x10
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mov edx, 0x91a2b3c5
divsd xmm0, qword [0x50c738]
cvttsd2si ecx, xmm0
cvttpd2dq xmm2, xmm0
mov eax, ecx
cvtdq2pd xmm2, xmm2
imul edx
subsd xmm0, xmm2
movapd xmm2, xmmword [esp + 0x30]
add edx, ecx
mov eax, edx
sar edx, 0xb
shr eax, 0x1f
add edx, eax
imul esi, edx, 0xfffff1f0
mov dword [edi + 0x14], edx
add esi, ecx
mov ecx, 0x88888889
mov eax, esi
imul ecx
add edx, esi
mov eax, edx
sar edx, 5
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xffffffc4
mov dword [edi + 0x18], edx
add eax, esi
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
addsd xmm1, xmm0
movsd qword [edi + 0x20], xmm1
mov byte [edi + 0x29], 0
mov byte [edi + 0x2b], 1
add dword [edi + 8], ebx
xorps xmm0, xmm0
cvtsi2sd xmm0, ebx
mov byte [edi + 0x28], 0
subsd xmm2, xmm0
movapd xmmword [esp + 0x30], xmm2
movsd qword [esp + 0x18], xmm2
mov ecx, edi
call fcn.004d4430
mov eax, dword [esp + 0x14]
movapd xmm1, xmmword [esp + 0x30]
movsd xmm0, qword [esp + 0xd8]
mulsd xmm1, qword [eax*8 + 0x516c40]
addsd xmm0, xmm1
movsd qword [esp + 0x78], xmm0
fld qword [esp + 0x78]
fnstcw word [esp + 0x24]
movzx eax, word [esp + 0x24]
or eax, 0xc00
mov word [esp + 0x50], ax
fldcw word [esp + 0x50]
fistp qword [esp + 0x78]
fldcw word [esp + 0x24]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
add dword [edi], eax
adc dword [edi + 4], ecx
mov dword [esp], 0
mov ebx, dword [ebp + 0xc]
mov word [ebx + 0x2a], 0
mov byte [ebx + 0x2c], 0
cmp dword [esp], 0
mov esi, dword [esp + 8]
jne 0x4d433d
inc esi
cmp esi, dword [esp + 0x5c]
jne 0x4d2eb0
jmp 0x4d4328
mov dword [ebx + 8], 0x7d0
mov dword [ebx + 0xc], 1
mov dword [ebx + 0x10], 1
jmp 0x4d3eaf
add eax, 0x2932e00
adc ecx, 0
push 0
push 0x5265c00
push ecx
push eax
call fcn.004fb230
add esp, 0x10
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mov ecx, eax
movsd xmm2, qword [0x50c730]
addsd xmm0, qword [0x50c710]
divsd xmm0, qword [0x50c718]
cvttsd2si eax, xmm0
lea edx, [eax + 3]
test eax, eax
cmovns edx, eax
add ecx, eax
sar edx, 2
sub ecx, edx
mov edx, 0x51eb851f
add ecx, 0x5f5
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
addsd xmm0, qword [0x50c720]
divsd xmm0, qword [0x50c728]
cvttsd2si esi, xmm0
mov eax, esi
and eax, 0x7fff
imul eax, eax, 0x8ead
mul edx
shr edx, 5
sub ecx, edx
mov edx, 0xffffffff
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
divsd xmm0, xmm2
cvttpd2dq xmm1, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm2
cvttsd2si eax, xmm1
sub ecx, eax
cvttsd2si eax, xmm0
mov dword [ebx + 0x10], ecx
cmp eax, 0xe
mov ecx, 0xfffffff3
cmovl ecx, edx
add ecx, eax
xor eax, eax
cmp ecx, 2
mov dword [ebx + 0xc], ecx
setg al
neg eax
lea eax, [esi + eax - 0x126b]
mov dword [ebx + 8], eax
mov eax, dword [esp + 4]
mov byte [eax], 1
cmp byte [ebx + 0x2b], 0
jne 0x4d3f5b
mov ecx, ebx
call fcn.004d4430
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
mov edx, 0x2932e00
add ecx, edx
adc eax, 0
push 0
push 0x5265c00
push eax
push ecx
call fcn.004fb390
add esp, 0x10
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mov edx, 0x91a2b3c5
divsd xmm0, qword [0x50c738]
cvttsd2si ecx, xmm0
cvttpd2dq xmm2, xmm0
mov eax, ecx
cvtdq2pd xmm2, xmm2
imul edx
subsd xmm0, xmm2
add edx, ecx
mov eax, edx
sar edx, 0xb
shr eax, 0x1f
add edx, eax
imul esi, edx, 0xfffff1f0
mov dword [ebx + 0x14], edx
add esi, ecx
mov ecx, 0x88888889
mov eax, esi
imul ecx
add edx, esi
mov eax, edx
sar edx, 5
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xffffffc4
mov dword [ebx + 0x18], edx
add eax, esi
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
addsd xmm1, xmm0
movsd qword [ebx + 0x20], xmm1
mov byte [ebx + 0x29], 0
mov byte [ebx + 0x2b], 1
mov ecx, ebx
mov byte [ebx + 0x2c], 0
mov byte [ebx + 0x28], 0
call fcn.004d4430
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
mov dword [esp + 0x14], eax
add eax, 0x7b98a00
mov ecx, edx
mov dword [esp + 0x30], edx
adc ecx, 0
push 0
push 0x5265c00
push ecx
push eax
call fcn.004fb230
add esp, 0x10
push 0
push 7
push edx
push eax
call fcn.004fb390
add esp, 0x10
mov ecx, eax
mov ebx, edx
mov esi, 0
add ecx, 0xfffffff9
adc edx, 0xffffffff
cmp edi, eax
sbb esi, ebx
cmovge ecx, eax
cmovge edx, ebx
mov eax, 0
mov ebx, dword [ebp + 0xc]
sub edi, ecx
sbb eax, edx
mov edx, 0x5265c00
imul ecx, eax, 0x5265c00
mov eax, edi
mul edx
add edx, ecx
add eax, dword [esp + 0x14]
adc edx, dword [esp + 0x30]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov word [ebx + 0x2a], 0
mov byte [ebx + 0x2c], 0
mov esi, dword [esp + 8]
mov dword [esp], 0
jmp 0x4d3db1
test al, 1
jne 0x4d41fc
mov edx, 1
mov dword [esp + 0xc], 1
call fcn.0044b800
mov ebx, eax
test ebx, ebx
je 0x4d433d
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0xa0], 0xffffffff
mov dword [esp], 0xffffffff
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x10], edi
lea edi, [ebx + 1]
mov ecx, esp
lea edx, [esp + 0xa0]
mov al, byte [ebx]
cmp al, 0x2d
mov byte [esp + 0x30], al
lea eax, [esp + 0x64]
cmovne edi, ebx
push eax
push ecx
push edx
push str.40f_21a_21d
push edi
call fcn.004d4900
add esp, 0x14
cmp eax, 3
jne 0x4d40c4
add edi, 9
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [edi + 1]
inc edi
movzx eax, byte [ecx + 0x50d0f3]
and al, 1
cmp ecx, 0x54
je 0x4d4090
test al, al
jne 0x4d4090
mov esi, dword [ebp + 0xc]
mov ecx, edi
mov edx, esi
call fcn.004d4650
test eax, eax
je 0x4d42e2
cmp byte [edi], 0
je 0x4d42db
mov edx, dword [ebp + 0xc]
mov ecx, ebx
call fcn.004d4650
mov esi, dword [esp + 0x10]
test eax, eax
je 0x4d431a
xor eax, eax
jmp 0x4d40f4
movzx ecx, byte [ecx + 0x50ce7b]
cmp cl, byte [edx + 0x50ce7b]
jne 0x4d421b
inc eax
movzx ecx, byte [ebx + eax]
movzx edx, byte [eax + 0x516b6d]
cmp cl, dl
jne 0x4d40e0
test cl, cl
jne 0x4d40f3
mov ecx, esi
call fcn.004d4820
test eax, eax
je 0x4d421b
mov edi, dword [esi + 0xc]
mov esi, dword [ebp + 0xc]
mov ecx, dword [edi + 0x38]
mov eax, dword [edi + 0x3c]
mov edx, ecx
or edx, eax
je 0x4d4360
cmp ecx, 1
mov dword [esi + 4], eax
mov dword [esi], ecx
sbb eax, 0
jl 0x4d433d
mov byte [esi + 0x28], 1
jmp 0x4d431a
mov eax, dword [edi]
add esi, 0x38
mov eax, dword [eax + 0x20]
mov eax, dword [eax]
cmp dword [eax], 2
jl 0x4d4171
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x4d4171
push esi
push eax
call ecx
add esp, 8
test eax, eax
jne 0x4d41e2
mov ecx, dword [esi]
mov eax, dword [esi + 4]
jmp 0x4d2da1
lea ecx, [esp + 0xa0]
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xa0], 0xffffffff
push ecx
push eax
call dword [eax + 0x40]
add esp, 8
movsd xmm0, qword [esp + 0xa0]
mulsd xmm0, qword [0x50c6d0]
movsd qword [esp + 0x68], xmm0
fld qword [esp + 0x68]
fnstcw word [esp + 0x2e]
movzx ecx, word [esp + 0x2e]
or ecx, 0xc00
mov word [esp + 0x5a], cx
fldcw word [esp + 0x5a]
fistp qword [esp + 0x68]
fldcw word [esp + 0x2e]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov dword [esi + 4], edx
mov dword [esi], ecx
test eax, eax
je 0x4d4167
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [esp + 0xc], 1
jmp 0x4d433d
test al, 0x12
je 0x4d42d2
call fcn.0044c130
jmp 0x4d2e05
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
lea edx, [esp + 0x18]
mov ecx, ebx
push 1
push eax
call fcn.0044c170
add esp, 8
test eax, eax
mov eax, dword [ebp + 0xc]
jle 0x4d433d
movsd xmm0, qword [esp + 0x18]
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
movsd qword [eax + 0x20], xmm0
mov byte [eax + 0x29], 1
jb 0x4d431a
movsd xmm1, qword [0x50c6d8]
ucomisd xmm1, xmm0
jbe 0x4d431a
mulsd xmm0, qword [0x50c6d0]
mov edx, dword [ebp + 0xc]
addsd xmm0, qword [0x50c6e0]
movsd qword [esp + 0x88], xmm0
fld qword [esp + 0x88]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
or eax, 0xc00
mov word [esp + 0x54], ax
fldcw word [esp + 0x54]
fistp qword [esp + 0x88]
fldcw word [esp + 0x28]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov byte [edx + 0x28], 1
jmp 0x4d431a
xorpd xmm0, xmm0
jmp 0x4d2e05
mov esi, dword [ebp + 0xc]
mov byte [esi + 0x2b], 0
mov byte [esi + 0x28], 0
mov byte [esi + 0x2a], 1
mov eax, dword [esp + 0xa0]
mov ecx, eax
neg ecx
cmp byte [esp + 0x30], 0x2d
cmovne ecx, eax
mov dword [esi + 8], ecx
mov eax, dword [esp]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x64]
mov dword [esi + 0x10], eax
cmp byte [esi + 0x2c], 0
je 0x4d431a
mov ecx, esi
call fcn.004d4430
mov ebx, dword [ebp + 0xc]
cmp dword [esp + 0x5c], 2
jge 0x4d2e8e
mov ecx, ebx
call fcn.004d4430
cmp byte [ebx + 0x2e], 0
mov dword [esp + 0xc], 1
je 0x4d4349
mov eax, dword [esp + 0xc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, 0x1072fdff
cmp eax, dword [ebx]
mov eax, 0x1a640
sbb eax, dword [ebx + 4]
setb al
movzx eax, al
jmp 0x4d4341
mov eax, dword [esp + 0x10]
add edi, 0x38
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
mov eax, dword [eax]
cmp dword [eax], 2
jl 0x4d4383
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x4d4383
push edi
push eax
call ecx
add esp, 8
jmp 0x4d43ff
lea ecx, [esp + 0xa0]
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xa0], 0xffffffff
push ecx
push eax
call dword [eax + 0x40]
add esp, 8
movsd xmm0, qword [esp + 0xa0]
mulsd xmm0, qword [0x50c6d0]
movsd qword [esp + 0x90], xmm0
fld qword [esp + 0x90]
fnstcw word [esp + 0x2a]
movzx ecx, word [esp + 0x2a]
or ecx, 0xc00
mov word [esp + 0x56], cx
fldcw word [esp + 0x56]
fistp qword [esp + 0x90]
fldcw word [esp + 0x2a]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov dword [edi + 4], edx
mov dword [edi], ecx
test eax, eax
je 0x4d4422
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [esi], 0
mov dword [esi + 4], 0
jmp 0x4d433d
mov ecx, dword [edi]
mov eax, dword [edi + 4]
jmp 0x4d412c