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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1a4
mov eax, dword [0x57a040]
xor eax, esp
mov dword [esp + 0x1a0], eax
mov ecx, dword [sym.imp.USER32.dll_wsprintfA]
xor eax, eax
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
push esi
push edi
mov dword [esp + 0x24], eax
mov edi, 0xd1
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], ecx
nop dword [eax]
mov esi, dword [eax*4 + 0x20a514c]
mov dword [esp + 0x14], esi
cmp dword [esi + 4], 2
jle 0x524608
cmp byte [esi + 0x9c0], 1
jne 0x523de9
call ebx
sub eax, dword [esi + 0x9c4]
cmp eax, 0x7530
jbe 0x523de9
mov ecx, dword [esi]
call fcn.0051f250
jmp 0x5248ef
mov ecx, esi
call fcn.005235e0
cmp word [esi + 0x78], 2
jne 0x524028
movzx eax, word [esi + 0xcc]
mov ecx, 0x11b
cmp ax, cx
jne 0x523e18
push dword [esi]
call fcn.00485e40
jmp 0x5248ef
mov ecx, 0x116
cmp ax, cx
jne 0x523e2e
push dword [esi]
call fcn.004b2140
jmp 0x5248ef
mov ecx, 0x120
cmp ax, cx
jne 0x524009
mov ebx, dword [esi]
call fcn.00526930
test al, 1
jne 0x5248ef
mov ebx, dword [ebx*4 + 0x20a514c]
lea edi, [esp + 0xb3]
xor cl, cl
mov dword [esp + 0x14], ebx
mov edx, 9
mov dword [esp + 0x5c], 0xdb00c1
mov byte [esp + 0x60], 0
mov al, byte [ebx + 0x144]
mov esi, dword [ebx + 0x368]
mov byte [esp + 0x61], al
inc esi
mov al, byte [ebx + 0x146]
mov byte [esp + 0x62], al
mov eax, 0x4b
mov byte [esp + 0x63], 0
mov byte [esp + 0x13], cl
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
cmp byte [esi - 1], 0
je 0x523fa3
cmp byte [esi + 2], 1
jne 0x523fa3
movsx ebx, word [esi]
test ebx, ebx
js 0x523fa3
mov ecx, dword [ebx*4 + 0x20a514c]
cmp byte [ecx + 0xdca], 1
je 0x523f95
mov eax, dword [esp + 0x14]
movsx eax, word [eax + 0x146]
movd xmm1, eax
movsx eax, word [ecx + 0x146]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd xmm1, qword [0x56a7a0]
call fcn.005462f0
mov eax, dword [esp + 0x14]
movsd qword [esp + 0x70], xmm0
movsx eax, word [eax + 0x144]
movd xmm2, eax
mov eax, dword [ebx*4 + 0x20a514c]
cvtdq2ps xmm2, xmm2
movsx eax, word [eax + 0x144]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm2, xmm1
movsd xmm1, qword [0x56a7a0]
cvtps2pd xmm0, xmm2
call fcn.005462f0
addsd xmm0, qword [esp + 0x70]
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x523f5f
sqrtsd xmm0, xmm0
jmp 0x523f64
call fcn.00547010
mov edx, dword [esp + 0x1c]
cvttsd2si eax, xmm0
cmp eax, 7
jge 0x523f9b
mov eax, ebx
add edx, 3
shr eax, 8
mov byte [edi - 2], al
mov byte [edi - 1], bl
mov byte [edi], 0
add edi, 3
mov cl, byte [esp + 0x13]
inc cl
mov dword [esp + 0x1c], edx
mov byte [esp + 0x13], cl
jmp 0x523f9f
mov cl, byte [esp + 0x13]
jmp 0x523fa3
mov cl, byte [esp + 0x13]
mov eax, dword [esp + 0x20]
add esi, 4
sub eax, 1
mov dword [esp + 0x20], eax
jne 0x523ea2
test cl, cl
je 0x5248ef
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0xa8]
push 1
mov byte [esp + 0x61], dl
movq xmm0, qword [esp + 0x60]
push dword [ebx]
movq qword [esp + 0xb0], xmm0
push eax
mov byte [esp + 0xbc], cl
call fcn.00516520
movzx eax, byte [ebx + 0x146]
push 0
push eax
movzx eax, byte [ebx + 0x144]
push eax
push 0x32
push ebx
call fcn.00517510
jmp 0x5248ef
cmp dword [esi + 0x240], 0
je 0x524028
call ebx
cmp eax, dword [esi + 0x240]
jb 0x524028
mov ecx, dword [esi]
call fcn.0051f250
jmp 0x5248ef
cmp word [esi + 0x78], 3
jne 0x524235
movzx eax, word [esi + 0xcc]
mov edx, 0xcc
mov ecx, eax
cmp ax, dx
jb 0x52419a
cmp cx, di
ja 0x52419a
mov eax, dword [0x61f4ac]
mov ebx, dword [esi]
mov dword [esp + 0x1c], ebx
cmp eax, 3
je 0x52406c
cmp eax, 4
jne 0x52419a
push ebx
call fcn.004451b0
mov edi, dword [ebx*4 + 0x20a514c]
test ebx, ebx
js 0x52419a
cmp ebx, 0x1194
jge 0x52419a
cmp dword [edi + 4], 3
jne 0x52419a
movzx edx, word [edi + 0xcc]
mov ecx, edx
mov ebx, edx
lea eax, [ecx - 0xcd]
cmp eax, 4
ja 0x52419a
add ecx, 0xffffff33
lea eax, [ecx*8]
sub eax, ecx
mov eax, dword [eax*4 + 0x620dd4]
test eax, eax
js 0x52419a
cmp eax, 0x1194
jge 0x52419a
cmp word [edi + 0x78], 3
jne 0x52419a
lea eax, [ebx - 0xcd]
cmp ax, 4
ja 0x52419a
lea ecx, [edx - 0xcd]
lea eax, [ecx*8]
sub eax, ecx
mov eax, dword [eax*4 + 0x620dd4]
mov ebx, dword [eax*4 + 0x20a514c]
cmp dword [ebx + 4], 3
jne 0x524189
movzx eax, word [ebx + 0x78]
cmp eax, 1
je 0x524126
cmp eax, 6
jne 0x524189
cmp byte [ebx + 0xa], 0
jg 0x524189
cmp byte [ebx + 0x9c0], 0
jne 0x524189
cmp byte [ebx + 0x7a], 0
je 0x524189
cmp byte [ebx + 0x149], 0x22
jne 0x524189
movsx ecx, word [ebx + 0x144]
movsx eax, word [edi + 0x144]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
test eax, eax
jg 0x524189
movsx ecx, word [ebx + 0x146]
movsx eax, word [edi + 0x146]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
test eax, eax
jg 0x524189
movzx eax, word [edi + 0xcc]
push eax
push dword [esp + 0x20]
call fcn.00444c70
jmp 0x52419a
movzx eax, word [edi + 0xcc]
push eax
push dword [esp + 0x20]
call fcn.004446f0
movzx eax, word [esi + 0xcc]
mov ecx, 0xd8
cmp ax, cx
jne 0x5241b7
push dword [esi]
call fcn.00424610
jmp 0x5248ef
mov ecx, 0xd9
cmp ax, cx
je 0x524349
mov ecx, 0xda
cmp ax, cx
je 0x524349
mov ecx, 0xdd
cmp ax, cx
je 0x5241e7
mov ecx, 0xde
cmp ax, cx
jne 0x524235
mov ebx, dword [esi]
mov edi, 0x5d97fc
mov esi, dword [esp + 0x18]
cmp dword [edi + 8], 0
je 0x524226
cmp dword [edi - 8], ebx
jne 0x524226
call esi
cmp dword [edi + 4], eax
jae 0x524226
mov dword [edi - 8], 0xffffffff
mov dword [edi - 4], 0xffffffff
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], 0
add edi, 0x14
cmp edi, 0x5d9be4
jl 0x5241f2
mov esi, dword [esp + 0x14]
cmp word [esi + 0x78], 1
jne 0x524600
mov edi, 0x9d5084
cmp dword [edi - 0xabc], 2
jne 0x52427c
mov ecx, edi
mov edx, 0x14
cmp dword [ecx], 0
jne 0x524274
cmp dword [ecx + 0xc], 0
je 0x524274
add dword [ecx + 8], 0xfffffc18
jne 0x524274
mov eax, dword [ecx + 4]
mov dword [ecx], eax
mov eax, dword [ecx + 0x10]
mov dword [ecx + 8], eax
add ecx, 0x18
sub edx, 1
jne 0x524255
add edi, 0xd28
cmp edi, 0x9edb34
jl 0x524245
push esi
call fcn.00448b80
push esi
call fcn.00462930
mov ecx, esi
call fcn.0051fbf0
mov ecx, esi
call fcn.004ea8e0
movzx ecx, word [esi + 0x110]
test cx, cx
je 0x524374
mov al, byte [esi + 0x112]
inc al
mov byte [esi + 0x112], al
cmp al, 0x3c
jbe 0x524374
lea eax, [ecx - 1]
mov byte [esi + 0x112], 0
mov word [esi + 0x110], ax
cmp ax, 1
jae 0x524374
xor eax, eax
mov dword [esp + 0x14], 0x1e3
mov word [esi + 0x110], ax
mov ecx, 0xa9b83c
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.00405650
mov eax, dword [esp + 0x80]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x524326
cmp dword [eax + 0x10], 0x1e3
jle 0x524328
mov eax, ecx
cmp eax, ecx
jne 0x524355
push 0x1e3
push str.Could_not_find_message__d_
push 0xa9b7bc
call dword [esp + 0x34]
add esp, 0xc
mov eax, 0xa9b7bc
jmp 0x524358
push dword [esi]
call fcn.004249b0
jmp 0x5248ef
add eax, 0x18
push eax
push 0
push 0
push 0
push 0
push 0
push 1
push dword [esi]
push 0xb90558
call fcn.004cdc70
add esp, 0x24
cmp byte [esi + 0x149], 0x1e
jne 0x5243d4
cmp dword [0x5d8fb0], 7
jne 0x5243d4
mov ax, word [esi + 0x144]
mov ecx, 0x96
sub ax, cx
cmp ax, 0x32
ja 0x5243b6
movzx eax, word [esi + 0x146]
mov ecx, 0xaf
cmp ax, cx
jl 0x5243b6
mov ecx, 0xe1
cmp ax, cx
jle 0x5243d4
mov ecx, dword [esi + 0xde4]
test ecx, ecx
jle 0x5243d4
sub ecx, dword [0xbdae64]
mov eax, 0
cmovns eax, ecx
mov dword [esi + 0xde4], eax
push esi
call fcn.004d8d10
cmp word [esi + 0x78], 1
jne 0x5243f3
mov al, byte [esi + 0x5e0]
test al, al
je 0x5243f3
dec al
mov byte [esi + 0x5e0], al
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx*4 + 0x20a514c]
mov eax, dword [ecx + 0x5dc]
test eax, eax
jle 0x524455
dec eax
mov dword [ecx + 0x5dc], eax
test eax, eax
jg 0x524455
xorps xmm0, xmm0
mov dword [ecx + 0x5dc], 0
comiss xmm0, dword [ecx + 0xfc]
jbe 0x524433
mov dword [ecx + 0xfc], 0
mov eax, dword [ecx + 0x250]
test eax, eax
je 0x524455
push 0
push 0
push 0
push 0
push 1
push 0
push ecx
push eax
mov ecx, 0x6509a4
call fcn.004dd760
push esi
call fcn.004d9110
mov eax, dword [esi + 0x284]
mov dword [esp + 0x20], eax
test eax, eax
js 0x524593
cmp eax, 0x1194
jge 0x524593
imul eax, eax, 0x2c
cmp dword [eax + 0xb94b08], 0
je 0x524593
xor cl, cl
lea edi, [eax + 0xb94b0c]
mov ebx, 4
mov byte [esp + 0x13], cl
xor edx, edx
nop dword [eax + eax]
mov eax, dword [edi]
test eax, eax
js 0x5244fb
cmp eax, 0x1194
jge 0x5244fb
mov eax, dword [eax*4 + 0x20a514c]
movd xmm1, dword [eax + 0x14c]
cvtdq2ps xmm1, xmm1
movss xmm0, dword [eax + 0xfc]
addss xmm1, dword [eax + 0x100]
mov al, dl
shl al, 4
divss xmm1, dword [0x56a7fc]
divss xmm0, xmm1
cvttss2si ecx, xmm0
and cl, 0xf
or cl, al
mov byte [esp + ebx + 0xa8], cl
inc ebx
mov cl, byte [esp + 0x13]
inc cl
mov byte [esp + 0x13], cl
inc edx
add edi, 4
cmp edx, 0xa
jl 0x5244a0
imul edi, dword [esp + 0x20], 0x2c
mov byte [esp + 0xab], cl
mov ecx, 0xa
mov byte [esp + 0xa8], 0xc1
mov byte [esp + 0xa9], bl
mov byte [esp + 0xaa], 0x44
add edi, 0xb94b0c
mov dword [esp + 0x14], ecx
mov eax, dword [edi]
test eax, eax
js 0x524556
cmp eax, 0x1194
jge 0x524556
push ebx
lea ecx, [esp + 0xac]
push ecx
push eax
call fcn.005192f0
mov ecx, dword [esp + 0x14]
add edi, 4
sub ecx, 1
mov dword [esp + 0x14], ecx
jne 0x524536
imul edi, dword [esp + 0x20], 0x2c
mov ebx, 0xa
add edi, 0xb94b0c
mov eax, dword [edi]
test eax, eax
js 0x52458b
cmp eax, 0x1194
jge 0x52458b
push dword [eax*4 + 0x20a514c]
call fcn.00478ca0
add edi, 4
sub ebx, 1
jne 0x524572
test byte [esi + 0x1e8], 2
mov edi, 1
je 0x5245c0
push 6
lea eax, [esp + 0x6c]
mov word [esp + 0x6c], 0x6c1
push eax
push dword [esi]
xor edi, edi
mov dword [esp + 0x76], 0x22f3
call fcn.005192f0
cmp byte [esi + 0x149], 6
jne 0x524600
cmp edi, 1
jne 0x524600
mov eax, dword [esi + 0x290]
mov ecx, edi
test eax, eax
je 0x5245e9
cmp byte [eax + 0x591], 0
je 0x5245e5
xor ecx, ecx
test ecx, ecx
je 0x524600
mov ecx, esi
call fcn.0040d540
test eax, eax
js 0x524600
mov ecx, dword [esi]
mov edx, 0x11
call fcn.00522900
mov ebx, dword [esp + 0x18]
cmp dword [esi + 4], 2
jl 0x524827
cmp word [esi + 0x78], 1
jne 0x524827
mov cl, byte [esi + 0xa]
test cl, cl
jle 0x524827
mov al, byte [esi + 0xb]
cmp cl, 1
jne 0x524710
cmp al, cl
jne 0x524662
push dword [esi]
call fcn.004d2de0
cmp al, 1
jne 0x524824
mov byte [esp + 0x30], al
lea eax, [esp + 0x2c]
push 5
push eax
push dword [esi]
mov dword [esp + 0x38], 0x2f105c3
call fcn.005192f0
jmp 0x524824
cmp al, 3
jne 0x524694
push dword [esi]
call fcn.004d2de0
cmp al, 1
jne 0x524824
mov byte [esp + 0x38], al
lea eax, [esp + 0x34]
push 5
push eax
push dword [esi]
mov dword [esp + 0x40], 0x2f105c3
call fcn.005192f0
jmp 0x524824
cmp al, 4
jne 0x5246c6
push dword [esi]
call fcn.004d2de0
cmp al, 1
jne 0x524824
mov byte [esp + 0x40], al
lea eax, [esp + 0x3c]
push 5
push eax
push dword [esi]
mov dword [esp + 0x48], 0x2f105c3
call fcn.005192f0
jmp 0x524824
test al, al
jne 0x5246e9
mov byte [esp + 0x48], al
lea eax, [esp + 0x44]
push 5
push eax
push dword [esi]
mov dword [esp + 0x50], 0x2f105c3
call fcn.005192f0
jmp 0x524824
cmp al, 2
jne 0x524824
mov byte [esp + 0x50], al
lea eax, [esp + 0x4c]
push 5
push eax
push dword [esi]
mov dword [esp + 0x58], 0x2f105c3
call fcn.005192f0
jmp 0x524824
movsx ecx, cl
lea edi, [ecx - 1]
mov ecx, 0xa9b83c
cmp al, 3
jne 0x524769
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x35b
push eax
lea eax, [esp + 0x88]
push eax
call fcn.00405650
mov eax, dword [esp + 0x8c]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x524755
cmp dword [eax + 0x10], 0x35b
jle 0x524757
mov eax, ecx
cmp eax, ecx
jne 0x524804
push 0x35b
jmp 0x5247ec
cmp al, 4
lea eax, [esp + 0x14]
push eax
jne 0x5247b0
lea eax, [esp + 0x94]
mov dword [esp + 0x18], 0x35a
push eax
call fcn.00405650
mov eax, dword [esp + 0x98]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x5247a3
cmp dword [eax + 0x10], 0x35a
jle 0x5247a5
mov eax, ecx
cmp eax, ecx
jne 0x524804
push 0x35a
jmp 0x5247ec
lea eax, [esp + 0xa0]
mov dword [esp + 0x18], 0x1e4
push eax
call fcn.00405650
mov eax, dword [esp + 0xa4]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x5247e1
cmp dword [eax + 0x10], 0x1e4
jle 0x5247e3
mov eax, ecx
cmp eax, ecx
jne 0x524804
push 0x1e4
push str.Could_not_find_message__d_
push 0xa9b7bc
call dword [esp + 0x34]
add esp, 0xc
mov eax, 0xa9b7bc
jmp 0x524807
add eax, 0x18
push edi
push eax
push 0
push 0
push 0
push 0
push 0
push 1
push dword [esi]
push 0xb90558
call fcn.004cdc70
add esp, 0x28
dec byte [esi + 0xa]
cmp dword [esi + 4], 2
jle 0x5248b3
cmp word [esi + 0x78], 1
jne 0x5248b3
call ebx
sub eax, dword [esi + 0x50]
cmp eax, 0x927c0
jbe 0x524850
mov ecx, dword [esi]
call fcn.004729b0
call ebx
mov dword [esi + 0x50], eax
cmp dword [esi + 0x74], 0
jbe 0x524899
call ebx
sub eax, dword [esi + 0x74]
cmp eax, 0x1388
jbe 0x524899
lea eax, [esi + 0x86]
push eax
lea eax, [esi + 0x7b]
push eax
push str.__s___s__CheckSumTime_Error
push 0
call fcn.005262e0
add esp, 0x10
mov dword [esp + 0x54], 0x2f105c3
lea eax, [esp + 0x54]
mov byte [esp + 0x58], 0
push 5
push eax
push dword [esp + 0x2c]
call fcn.005192f0
mov edx, 1
mov ecx, esi
call fcn.005216a0
mov ecx, esi
call fcn.00521490
mov ecx, esi
call fcn.00525280
mov eax, dword [esi + 4]
cmp eax, 1
je 0x5248c5
cmp eax, 2
je 0x5248c5
cmp eax, 3
jne 0x5248ef
cmp word [esi + 0x78], 1
jne 0x5248ef
cmp eax, 2
jl 0x5248ed
call ebx
sub eax, dword [esi + 0x54]
cmp eax, 0xea60
jbe 0x5248ef
push dword [esp + 0x24]
mov ecx, 0xbf3318
call fcn.00519530
jmp 0x5248ef
call ebx
mov eax, dword [esp + 0x24]
mov edi, 0xd1
mov ebx, dword [esp + 0x18]
inc eax
mov dword [esp + 0x24], eax
cmp eax, 0x1194
jl 0x523db0
mov ecx, dword [esp + 0x1ac]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret