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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov esi, esp
mov dword [esi + 0xc8], ebp
mov dword [esi + 0xcc], esp
mov dword [esi + 0xd8], 0xffffffff
mov dword [esi + 0xd4], 0x44f460
mov dword [esi + 0x24], ecx
lea eax, [esi + 0xd0]
mov dword [esi + 0x9c], edx
mov ecx, dword fs:[0]
mov dword [esi + 0xd0], ecx
mov dword fs:[0], eax
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0
lea ecx, [esi + 0x60]
mov eax, dword [0x45f050]
push ecx
call eax
mov edi, dword [esi + 0x60]
mov ecx, dword [esi + 0x64]
mov ebx, 0xd53e8000
mov eax, edi
mov edx, ecx
add eax, 0x2ac18000
adc edx, 0xfe624e21
mov dword [esi + 0x40], eax
sub ebx, edi
mov eax, 0x19db1de
sbb eax, ecx
cmp edi, 0xd53e8000
mov edi, ebx
sbb ecx, 0x19db1de
cmovge edi, dword [esi + 0x40]
cmovge eax, edx
setl bl
push 0
push 0x989680
mov dword [esi + 0x28], eax
push eax
push edi
call fcn.0044fba0
mov ecx, eax
imul eax, eax, 0xff676980
mov dword [esi + 0x2c], edi
add eax, edi
mov dword [esi + 0x20], eax
imul eax, eax, 0x64
test bl, bl
mov dword [esi + 0xc], eax
je 0x437afa
mov eax, edx
shr edx, 2
shld eax, ecx, 0x1e
add edx, eax
adc edx, 0
and ecx, 3
mov eax, edx
mov ebx, edx
mov edx, 0x88888889
mul edx
shr edx, 3
lea eax, [edx + edx*4]
lea eax, [eax + eax*2]
sub ebx, eax
lea eax, [ecx + ebx*4]
mov dword [esi + 0x1c], eax
push 0
push 0x23c34600
mov ebx, dword [esi + 0x28]
push ebx
push edi
call fcn.0044fba0
mov ecx, eax
mov edi, edx
mov eax, edx
mov edx, 0x88888889
shr eax, 2
shld edi, ecx, 0x1e
add edi, eax
adc edi, 0
and ecx, 3
mov eax, edi
mul edx
shr edx, 3
lea eax, [edx + edx*4]
lea eax, [eax + eax*2]
sub edi, eax
lea eax, [ecx + edi*4]
mov dword [esi + 0x40], eax
push 8
push 0x61c46800
push ebx
push dword [esi + 0x2c]
call fcn.0044fba0
mov ecx, eax
mov edi, edx
mov eax, edx
mov edx, 0xaaaaaaab
shr eax, 3
shld edi, ecx, 0x1d
add edi, eax
adc edi, 0
and ecx, 7
mov eax, edi
mul edx
shr edx, 1
lea eax, [edx + edx*2]
sub edi, eax
cmp dword [esi + 0x20], 0
lea edx, [ecx + edi*8]
jle 0x437d2a
mov ebx, dword [esi + 0x1c]
mov eax, 0x3b9aca00
sub eax, dword [esi + 0xc]
not bl
jmp 0x437d39
mov dword [esi + 0x98], edx
mov dword [esi + 0x1c], ecx
push 0xc9
push 0x2a69c000
push dword [esi + 0x28]
push edi
call fcn.0044fba0
lea ecx, [eax - 0x2cc0a1]
cmp ecx, 0xff908adc
jb 0x438637
lea ecx, [eax + 0xafa6d]
mov dword [esi + 0x40], eax
imul ebx, ecx, 0x64
mov ecx, 0x24bf6079
lea edi, [ebx - 0x19]
mov eax, edi
imul ecx
mov ecx, edx
mov eax, edx
mov edx, 0xdb409f87
shr eax, 0x1f
sar ecx, 0x13
add ecx, eax
mov eax, edi
imul edx
mov eax, edx
sar edx, 0x15
shr eax, 0x1f
add edx, eax
add edx, ecx
mov ecx, 0x72d572f1
imul eax, edx, 0x64
mov dword [esi + 0x20], edx
lea edi, [eax + ebx - 0x19]
mov eax, edi
imul ecx
mov eax, edx
sar edx, 0xe
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x8ead
sub edi, eax
sar edi, 0x1f
add edi, edx
mov edx, 0xae147ae1
imul ecx, edi, 0x8ead
mov eax, ecx
imul edx
mov ebx, edx
mov eax, edx
mov edx, 0x51eb851f
shr eax, 0x1f
shr ebx, 5
add ebx, eax
mov eax, ecx
imul edx
mov eax, edx
sar edx, 5
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x64
mov edx, dword [esi + 0x20]
sub ecx, eax
mov eax, dword [esi + 0x40]
shr ecx, 0x1f
lea edx, [eax + edx + 0xafa6d]
add edx, ebx
mov ebx, edi
add edx, ecx
test bl, 3
jne 0x437c08
test bl, 0xf
je 0x437ef3
movsx eax, bx
imul eax, eax, 0x147b
mov ecx, eax
sar eax, 0x11
shr ecx, 0x1f
add eax, ecx
mov ecx, ebx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
sub ecx, eax
test cx, cx
jne 0x437ef3
lea ecx, [edx + 0x3b]
movzx eax, cx
cmp eax, 0x16d
jbe 0x437c22
add edx, 0xfffffece
mov eax, 1
jmp 0x437c34
xor eax, eax
test cx, cx
mov edx, 0x16d
sete al
cmovne edx, ecx
neg eax
add eax, ebx
mov ecx, dword [esi + 0x2c]
movzx ebx, dx
mov dword [esi + 0x94], edx
shl eax, 9
or ebx, eax
push 8
push 0x61c46800
push dword [esi + 0x28]
push ecx
call fcn.0044fba0
mov ecx, eax
mov edi, edx
mov eax, edx
mov edx, 0xaaaaaaab
shr eax, 3
shld edi, ecx, 0x1d
add edi, eax
adc edi, 0
and ecx, 7
mov eax, edi
mul edx
shr edx, 1
lea eax, [edx + edx*2]
sub edi, eax
lea eax, [ecx + edi*8]
mov dword [esi + 0x20], eax
push 0
push 0x23c34600
push dword [esi + 0x28]
push dword [esi + 0x2c]
call fcn.0044fba0
mov ecx, eax
mov edi, edx
mov eax, edx
mov edx, 0x88888889
shr eax, 2
shld edi, ecx, 0x1e
add edi, eax
adc edi, 0
and ecx, 3
mov eax, edi
mul edx
shr edx, 3
lea eax, [edx + edx*4]
mov edx, 0x88888889
lea eax, [eax + eax*2]
sub edi, eax
lea eax, [ecx + edi*4]
mov edi, dword [esi + 0x98]
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x40], eax
mov eax, edi
shr edi, 2
shld eax, ecx, 0x1e
add edi, eax
adc edi, 0
and ecx, 3
mov eax, edi
mul edx
shr edx, 3
lea eax, [edx + edx*4]
lea eax, [eax + eax*2]
sub edi, eax
mov eax, ebx
sar ebx, 9
lea edx, [ecx + edi*4]
mov edi, dword [esi + 0x94]
and edi, 0x1ff
mov cx, 0x16d
test eax, 0x600
je 0x437fa5
cmp di, cx
jbe 0x437fde
mov ecx, dword [esi + 0x40]
inc ebx
mov di, 1
jmp 0x43801f
mov ebx, dword [esi + 0x1c]
test bl, bl
je 0x43836c
neg bl
xor eax, eax
mov ecx, dword [esi + 0x40]
mov edi, dword [esi + 0x2c]
add bl, 0x3c
not cl
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x28]
add cl, 0x3c
not dl
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x40], ecx
mov dword [esi + 0x20], edx
push 0xc9
push 0x2a69c000
push eax
push edi
call fcn.0044fba0
lea ecx, [eax - 0x42b484]
cmp ecx, 0xff908adc
jb 0x438683
mov ecx, 0xafa6d
mov edx, 0x24bf6079
sub ecx, eax
imul ebx, ecx, 0x64
mov dword [esi + 0x28], ecx
lea ecx, [ebx - 0x19]
mov eax, ecx
imul edx
mov edi, edx
mov eax, edx
mov edx, 0xdb409f87
shr eax, 0x1f
sar edi, 0x13
add edi, eax
mov eax, ecx
imul edx
mov ecx, edx
mov eax, edx
mov edx, 0x72d572f1
shr eax, 0x1f
sar ecx, 0x15
add ecx, eax
add ecx, edi
imul eax, ecx, 0x64
add ecx, dword [esi + 0x28]
lea edi, [eax + ebx - 0x19]
mov eax, edi
imul edx
mov eax, edx
sar edx, 0xe
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x8ead
sub edi, eax
sar edi, 0x1f
add edi, edx
mov edx, 0xae147ae1
mov dword [esi + 0x2c], edi
imul edi, edi, 0x8ead
mov eax, edi
imul edx
mov ebx, edx
mov eax, edx
mov edx, 0x51eb851f
shr eax, 0x1f
shr ebx, 5
add ebx, eax
mov eax, edi
imul edx
add ecx, ebx
mov ebx, dword [esi + 0x2c]
mov eax, edx
sar edx, 5
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x64
sub edi, eax
shr edi, 0x1f
add ecx, edi
test bl, 3
mov edi, ecx
jne 0x437e57
test bl, 0xf
je 0x437f13
movsx eax, bx
imul eax, eax, 0x147b
mov edx, eax
sar eax, 0x11
shr edx, 0x1f
add eax, edx
mov edx, ebx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
sub edx, eax
test dx, dx
jne 0x437f13
lea eax, [edi + 0x3b]
mov ecx, ebx
movzx edx, ax
cmp edx, 0x16d
jbe 0x437e74
add edi, 0xfffffece
mov ebx, 1
jmp 0x437e86
xor ebx, ebx
test ax, ax
mov edi, 0x16d
sete bl
cmovne edi, eax
neg ebx
add ebx, ecx
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
movzx eax, di
shl ebx, 9
or ebx, eax
test cl, cl
jns 0x437f37
and eax, 0x1ff
cmp eax, 1
jne 0x437f36
cmp ebx, 0xffb1e201
je 0x4386d0
sar ebx, 9
mov eax, 0x16d
dec ebx
test bl, 3
jne 0x437eec
imul eax, ebx, 0xc28f5c29
add eax, 0x51eb851
cmp eax, 0xa3d70a3
setae al
test bl, 0xf
sete cl
or cl, al
movzx eax, cl
mov ecx, dword [esi + 0x20]
add eax, 0x16d
shl ebx, 9
or ebx, eax
jmp 0x437f37
lea ecx, [edx + 0x3c]
movzx eax, cx
cmp eax, 0x16e
ja 0x437c15
xor eax, eax
test cx, cx
mov edx, 0x16e
jmp 0x437c2c
lea eax, [edi + 0x3c]
mov ecx, ebx
movzx edx, ax
cmp edx, 0x16e
ja 0x437e67
xor ebx, ebx
test ax, ax
mov edi, 0x16e
jmp 0x437e7e
dec ebx
mov eax, ecx
add al, 0x18
test cl, cl
movzx ecx, cl
movzx eax, al
cmovns eax, ecx
cmp dl, 0x3c
jl 0x437f55
mov ecx, dword [esi + 0x40]
add dl, 0xc4
inc cl
jmp 0x437f58
mov ecx, dword [esi + 0x40]
mov edi, ebx
mov dword [esi + 0x1c], edx
and edi, 0x1ff
cmp cl, 0x3c
jl 0x437f6d
add cl, 0xc4
inc al
mov edx, ebx
sar ebx, 9
cmp al, 0x17
mov dword [esi + 0x40], ecx
jle 0x437f84
movzx edi, di
add al, 0xe8
mov dword [esi + 0x20], eax
inc edi
jmp 0x437f91
test al, al
jns 0x437f8e
movzx edi, di
add al, 0x18
dec edi
mov dword [esi + 0x20], eax
mov eax, edx
mov edx, dword [esi + 0x1c]
mov cx, 0x16d
test eax, 0x600
jne 0x437d14
imul ecx, ebx, 0xc28f5c29
add ecx, 0x51eb851
cmp ecx, 0xa3d70a3
setae cl
test eax, 0x1e00
mov eax, edi
mov edi, edx
sete dl
or dl, cl
movzx ecx, dl
mov edx, edi
mov edi, eax
add ecx, 0x16d
cmp di, cx
ja 0x437d1d
mov ecx, dword [esi + 0x40]
test di, di
jne 0x43801f
dec ebx
mov di, 0x16d
test bl, 3
jne 0x43801f
imul ecx, ebx, 0xc28f5c29
mov edi, edx
add ecx, 0x51eb851
cmp ecx, 0xa3d70a3
setae cl
test bl, 0xf
sete dl
or dl, cl
mov ecx, dword [esi + 0x40]
movzx eax, dl
mov edx, edi
mov edi, eax
add edi, 0x16d
movzx eax, byte [esi + 0x20]
movzx ecx, cl
shl ebx, 9
movzx edi, di
mov dword [esi + 0x54], 0
mov dword [esi + 0x58], 1
mov dword [esi + 0x5c], 0
shl ecx, 8
or edi, ebx
lea ebx, [esi + 0x10]
or ecx, eax
movzx eax, dl
mov edx, 0x45912c
shl eax, 0x10
or eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x28], eax
mov dword [esi + 0x14], eax
lea eax, [esi + 0x54]
mov dword [esi + 0x10], ecx
lea ecx, [esi + 0x30]
push 1
push ebx
mov dword [esi + 0x40], edi
push edi
push eax
call fcn.00439db0
add esp, 0x10
mov edi, dword [esi + 0x30]
cmp edi, 3
jne 0x438310
mov ebx, dword [esi + 0x28]
mov eax, dword [esi + 0xc]
lea edx, [0x459138]
lea ecx, [esi + 0x30]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], eax
push 1
lea eax, [esi + 0x10]
push eax
push dword [esi + 0x40]
lea eax, [esi + 0x54]
push eax
call fcn.00439db0
add esp, 0x10
mov edi, dword [esi + 0x30]
cmp edi, 3
jne 0x438310
mov eax, dword [esi + 0xc]
mov dword [esi + 0x14], ebx
lea edx, [0x459144]
lea ecx, [esi + 0x30]
mov dword [esi + 0x10], eax
push 1
lea eax, [esi + 0x10]
push eax
push dword [esi + 0x40]
lea eax, [esi + 0x54]
push eax
call fcn.00439db0
add esp, 0x10
mov edi, dword [esi + 0x30]
cmp edi, 3
jne 0x438310
mov eax, dword [esi + 0xc]
mov dword [esi + 0x14], ebx
lea edx, [0x459150]
lea ecx, [esi + 0x30]
mov dword [esi + 0x10], eax
push 1
lea eax, [esi + 0x10]
push eax
push dword [esi + 0x40]
lea eax, [esi + 0x54]
push eax
call fcn.00439db0
add esp, 0x10
mov edi, dword [esi + 0x30]
cmp edi, 3
jne 0x438310
mov eax, dword [esi + 0xc]
mov dword [esi + 0x14], ebx
lea edx, [0x45915c]
lea ecx, [esi + 0x30]
mov dword [esi + 0x10], eax
push 1
lea eax, [esi + 0x10]
push eax
push dword [esi + 0x40]
lea eax, [esi + 0x54]
push eax
call fcn.00439db0
add esp, 0x10
mov edi, dword [esi + 0x30]
cmp edi, 3
jne 0x438310
mov eax, dword [esi + 0xc]
mov dword [esi + 0x14], ebx
lea edx, [0x459168]
lea ecx, [esi + 0x30]
mov dword [esi + 0x10], eax
push 1
lea eax, [esi + 0x10]
push eax
push dword [esi + 0x40]
lea eax, [esi + 0x54]
push eax
call fcn.00439db0
add esp, 0x10
mov edi, dword [esi + 0x30]
cmp edi, 3
jne 0x438310
mov eax, dword [esi + 0xc]
mov dword [esi + 0x14], ebx
lea edx, [0x459174]
lea ecx, [esi + 0x30]
mov dword [esi + 0x10], eax
push 1
lea eax, [esi + 0x10]
push eax
push dword [esi + 0x40]
lea eax, [esi + 0x54]
push eax
call fcn.00439db0
add esp, 0x10
mov edi, dword [esi + 0x30]
cmp edi, 3
jne 0x438310
mov eax, dword [esi + 0xc]
mov dword [esi + 0x14], ebx
lea edx, [0x459180]
lea ecx, [esi + 0x30]
mov dword [esi + 0x10], eax
push 1
lea eax, [esi + 0x10]
push eax
push dword [esi + 0x40]
lea eax, [esi + 0x54]
push eax
call fcn.00439db0
add esp, 0x10
mov edi, dword [esi + 0x30]
cmp edi, 3
jne 0x438310
mov eax, dword [esi + 0xc]
mov dword [esi + 0x14], ebx
lea edx, [0x45918c]
lea ecx, [esi + 0x30]
mov dword [esi + 0x10], eax
push 1
lea eax, [esi + 0x10]
push eax
push dword [esi + 0x40]
lea eax, [esi + 0x54]
push eax
call fcn.00439db0
add esp, 0x10
mov edi, dword [esi + 0x30]
cmp edi, 3
jne 0x438310
mov eax, dword [esi + 0xc]
mov dword [esi + 0x14], ebx
lea edx, [0x459198]
lea ecx, [esi + 0x30]
mov dword [esi + 0x10], eax
push 1
lea eax, [esi + 0x10]
push eax
push dword [esi + 0x40]
lea eax, [esi + 0x54]
push eax
call fcn.00439db0
add esp, 0x10
mov edi, dword [esi + 0x30]
cmp edi, 3
jne 0x438310
mov eax, dword [esi + 0xc]
mov dword [esi + 0x14], ebx
lea edx, [0x4591a4]
lea ecx, [esi + 0x30]
mov dword [esi + 0x10], eax
push 1
lea eax, [esi + 0x10]
push eax
push dword [esi + 0x40]
lea eax, [esi + 0x54]
push eax
call fcn.00439db0
add esp, 0x10
mov edi, dword [esi + 0x30]
cmp edi, 3
jne 0x438310
mov eax, dword [esi + 0x58]
mov edi, dword [esi + 0x5c]
lea ecx, [esi + 0x30]
lea edx, [esi + 0x8c]
mov dword [esi + 0x8c], eax
mov dword [esi + 0x90], edi
call fcn.00411bb0
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x4383a0
mov eax, dword [esi + 0x34]
cmp dword [esi + 0x3c], 0
mov dword [esi + 0x40], eax
je 0x438528
test edi, edi
mov dword [esi + 0xc], ecx
je 0x4383b1
js 0x4386e4
movzx eax, byte [0x45f57c]
mov eax, dword [0x45f508]
test eax, eax
jne 0x4382f2
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x438304
mov dword [0x45f508], eax
push edi
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
jne 0x4383b6
mov ecx, 1
mov edx, edi
call fcn.00450740
movsd xmm0, qword [esi + 0x34]
mov ebx, dword [esi + 0x24]
cmp dword [esi + 0x54], 0
je 0x438337
push dword [esi + 0x58]
push 0
push dword [0x45f508]
movaps xmmword [esi + 0x40], xmm0
call dword [sym.imp.kernel32.dll_HeapFree]
movaps xmm0, xmmword [esi + 0x40]
lea ecx, [esi + 0xc0]
lea edx, [esi + 0x30]
mov dword [esi + 0x30], edi
movlps qword [esi + 0x34], xmm0
call fcn.00439790
movq xmm0, qword [esi + 0xc0]
movq qword [ebx], xmm0
mov eax, dword [esi + 0xd0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esi + 0x40]
mov edi, dword [esi + 0x2c]
mov eax, dword [esi + 0x28]
xor ebx, ebx
test cl, cl
je 0x438384
neg cl
xor eax, eax
jmp 0x437d44
neg dl
mov dword [esi + 0x1c], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x40], 0
jmp 0x437d55
mov dword [esi + 0x40], 0
mov ecx, 0x4595d0
jmp 0x438528
mov eax, 1
mov dword [esi + 0x10], edi
mov ecx, edi
mov edi, dword [esi + 0x40]
xor ebx, ebx
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], 0
cmp edi, ecx
jbe 0x4383ef
mov dword [esi + 0xd8], 0
lea ecx, [esi + 0x10]
xor edx, edx
push edi
call fcn.00450750
add esp, 4
mov eax, dword [esi + 0x14]
mov ebx, dword [esi + 0x18]
mov edi, dword [esi + 0x40]
add eax, ebx
push edi
push dword [esi + 0xc]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
mov dword [esi + 0x18], ebx
mov eax, dword [esi + 0x10]
sub eax, ebx
cmp eax, 2
ja 0x438429
mov dword [esi + 0xd8], 0
lea ecx, [esi + 0x10]
mov edx, ebx
push 3
call fcn.00450750
add esp, 4
mov ebx, dword [esi + 0x18]
mov edi, dword [esi + 0x14]
mov byte [edi + ebx + 2], 0xbd
mov word [edi + ebx], 0xbfef
add ebx, 3
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x18], ebx
mov dword [esi + 0xb4], eax
mov dword [esi + 0xb8], ecx
jmp 0x43846e
mov ebx, dword [esi + 0x18]
mov edi, dword [esi + 0x14]
mov byte [edi + ebx + 2], 0xbd
mov word [edi + ebx], 0xbfef
add ebx, 3
mov dword [esi + 0x18], ebx
lea ecx, [esi + 0x30]
lea edx, [esi + 0xb4]
call fcn.00411bb0
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x438517
mov eax, dword [esi + 0x3c]
mov edx, dword [esi + 0x34]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x10]
sub eax, ebx
cmp eax, edx
jae 0x4384c5
mov eax, edx
mov dword [esi + 0xc], ecx
mov dword [esi + 0xd8], 0
lea ecx, [esi + 0x10]
mov edx, ebx
mov dword [esi + 0x28], eax
push eax
call fcn.00450750
add esp, 4
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0x18]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x28]
mov dword [esi + 0xc], edi
lea eax, [edi + ebx]
push edx
push ecx
push eax
mov edi, edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
cmp dword [esi + 0x40], 0
mov dword [esi + 0x18], ebx
je 0x43850f
mov eax, dword [esi + 0x10]
sub eax, ebx
cmp eax, 2
ja 0x43845a
mov dword [esi + 0xd8], 0
lea ecx, [esi + 0x10]
mov edx, ebx
push 3
call fcn.00450750
add esp, 4
jmp 0x438457
mov edi, dword [esi + 0xc]
jmp 0x43846e
mov dword [esi + 0x40], ebx
mov ebx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
cmp ebx, 0x80000000
jne 0x438587
mov ebx, dword [esi + 0x40]
mov dword [esi + 0xc], ecx
test ebx, ebx
je 0x438573
js 0x4386e4
movzx eax, byte [0x45f57c]
mov eax, dword [0x45f508]
test eax, eax
jne 0x438557
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x438567
mov dword [0x45f508], eax
push ebx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edi, eax
test eax, eax
jne 0x438578
mov ecx, 1
mov edx, ebx
call fcn.00450740
mov edi, 1
push ebx
push dword [esi + 0xc]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, edi
mov edx, dword [ebp + 8]
cmp dword [esi + 0x54], 0
je 0x4385a8
push dword [esi + 0x58]
push 0
push dword [0x45f508]
mov edi, ecx
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [ebp + 8]
mov ecx, edi
movd xmm0, dword [esi + 0x40]
lea eax, [esi + 0xa0]
movd xmm1, ecx
mov dword [esi + 0x60], 0x459e6c
mov dword [esi + 0x64], 1
mov dword [esi + 0x70], 0
mov dword [esi + 0xa0], ebx
mov dword [esi + 0xac], eax
lea eax, [esi + 0xac]
mov dword [esi + 0xb0], 0x4015b0
mov dword [esi + 0x68], eax
lea eax, [esi + 0x60]
mov dword [esi + 0x6c], 1
punpckldq xmm1, xmm0
movq qword [esi + 0xa4], xmm1
push eax
push dword [esi + 0x9c]
push dword [esi + 0x24]
call dword [edx + 0x24]
add esp, 0xc
cmp dword [esi + 0xa0], 0
je 0x438358
push dword [esi + 0xa4]
push 0
push dword [0x45f508]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x438358
movaps xmm0, xmmword [0x453400]
add eax, 0x253d8c
mov ecx, str.overflow_adding_duration_to_date
mov edx, 0x20
mov dword [esi + 0x60], 0x45c139
mov dword [esi + 0x64], 0xa
movups xmmword [esi + 0x68], xmm0
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], 0
mov byte [esi + 0x80], 0
push 0x45c190
push 0x45c0c8
lea eax, [esi + 0x60]
push eax
call fcn.00450c00
movaps xmm0, xmmword [0x453400]
mov ecx, 0x253d8c
mov dword [esi + 0x60], 0x45c139
mov dword [esi + 0x64], 0xa
mov edx, 0x27
sub ecx, eax
movups xmmword [esi + 0x68], xmm0
mov dword [esi + 0x78], ecx
sar ecx, 0x1f
mov dword [esi + 0x7c], ecx
mov ecx, str.overflow_subtracting_duration_from_date
mov byte [esi + 0x80], 0
push 0x45c1c8
push 0x45c0c8
lea eax, [esi + 0x60]
push eax
call fcn.00450c00
mov ecx, 0x45c20e
mov edx, 0x1f
push 0x45c2a0
call fcn.00450c80
call fcn.0040a900
nop dword [eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0xdc]
mov ebp, dword [esi + 0xc8]
cmp dword [esi + 0x10], 0
je 0x438717
push dword [esi + 0x14]
push 0
push dword [0x45f508]
call dword [sym.imp.kernel32.dll_HeapFree]
add esp, 0x10
pop ebp
ret