Function at 0x42e870
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55565b
mov eax, dword fs:[0]
push eax
mov eax, 0x1324
call fcn.00525660
mov eax, dword [0x5ca1c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x1174], esi
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x1168], eax
mov eax, edi
mov dword [edi + 0x10], 0
cmp dword [edi + 0x14], 0xf
mov dword [ebp - 0x1198], ecx
mov dword [ebp - 0x1184], 0
mov dword [ebp - 0x117c], 0
jbe 0x42e8e3
mov eax, dword [edi]
mov edx, ecx
mov byte [eax], 0
lea ecx, [ebp - 0x10c4]
call fcn.0042c980
push dword [ebp + 0xc]
lea eax, [ebp - 0x10c4]
push eax
lea ecx, [ebp - 0x10e0]
call fcn.00432d00
lea ecx, [ebp - 0x101c]
mov dword [ebp - 0x1060], 0
push ecx
push ecx
lea ecx, [ebp - 0x1078]
mov dword [ebp - 0x1078], 2
push ecx
lea eax, [ebp - 0x1010]
mov dword [ebp - 0x1074], 0
lea ecx, [ebp - 0x1194]
mov dword [ebp - 0x1194], eax
xorps xmm0, xmm0
mov dword [ebp - 0x101c], 0
lea eax, [esi + 0x30]
movlpd qword [ebp - 0x1070], xmm0
push ecx
push eax
movlpd qword [ebp - 0x1068], xmm0
mov dword [ebp - 0x1018], 0x5cacb0
mov dword [ebp - 0x1190], 0x1000
call fcn.004357c0
cmp dword [ebp - 0x101c], 0
mov esi, eax
jne 0x42eeed
cmp esi, 0x1000
jae 0x430bc9
lea eax, [ebp - 0x1010]
mov ecx, 0x5de3a0
add eax, esi
push esi
mov dword [ebp - 0x1180], eax
mov byte [eax], 0
call fcn.0040f780
xorps xmm0, xmm0
mov dword [ebp - 0x10ac], 0
lea edx, [ebp - 0x10c4]
movlpd qword [ebp - 0x10bc], xmm0
lea ecx, [ebp - 0x1078]
movlpd qword [ebp - 0x10b4], xmm0
mov dword [ebp - 0x10c4], 2
mov dword [ebp - 0x10c0], 0
call fcn.0042ca80
test al, al
jne 0x42ea18
lea edx, [ebp - 0x1078]
lea ecx, [ebp - 0x10e0]
call fcn.0042ca80
test al, al
je 0x42ebaa
test esi, esi
je 0x42ebaa
push 1
mov dword [ebp - 4], 0
call fcn.00522199
mov ecx, eax
add esp, 4
mov dword [ebp - 0x1014], ecx
xor edx, edx
cmp byte [ebp - 0x1010], dl
je 0x42ea5d
inc edx
cmp edx, 0x1000
je 0x42ea58
cmp byte [ebp + edx - 0x1010], 0
jne 0x42ea43
jmp 0x42ea5d
mov edx, 0x1000
xor eax, eax
nop
inc eax
cmp byte [eax + str.print_n], 0
jne 0x42ea60
test edx, edx
je 0x42ea9a
test eax, eax
je 0x42ea9a
cmp eax, edx
ja 0x42ea9a
push eax
push str.print_n
push 0
lea ecx, [ebp - 0x1010]
call fcn.00434d60
mov ecx, dword [ebp - 0x1014]
add esp, 0xc
mov dword [ebp - 0x1170], eax
jmp 0x42eaa4
mov dword [ebp - 0x1170], 0xffffffff
mov dword [ebp - 4], 0xffffffff
test ecx, ecx
je 0x42eac2
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, eax
test ecx, ecx
je 0x42eac2
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [ebp - 0x1170]
mov edx, edi
cmp eax, 0xffffffff
je 0x42eae1
lea ecx, [ebp - 0x100a]
add ecx, eax
mov eax, dword [ebp - 0x1180]
sub eax, ecx
jmp 0x42eae9
lea ecx, [ebp - 0x1010]
mov eax, esi
push eax
push ecx
mov ecx, edx
call fcn.004177a0
cmp dword [edi + 0x14], 0xf
mov ecx, edi
mov eax, dword [edi + 0x10]
jbe 0x42eaff
mov ecx, dword [edi]
push 0xf
push str.map_rotate..._n_n
push 0
mov edx, eax
call fcn.00434d60
add esp, 0xc
cmp eax, 0xffffffff
jne 0x42eb73
cmp dword [edi + 0x14], 0xf
mov ecx, edi
jbe 0x42eb21
mov ecx, dword [edi]
mov edx, dword [edi + 0x10]
push 0x16
push str._ShutdownGame_
push 0
call fcn.00434d60
add esp, 0xc
cmp eax, 0xffffffff
jne 0x42eb73
add dword [ebp - 0x117c], esi
mov eax, edi
cmp dword [edi + 0x14], 0xf
jbe 0x42eb4a
mov eax, dword [edi]
mov esi, dword [edi + 0x10]
lea ecx, [ebp - 0x11a0]
push 0x5973b0
mov dword [ebp - 0x11a0], eax
mov dword [ebp - 0x119c], esi
call fcn.004332d0
test al, al
jne 0x42ec5f
jmp 0x42eb7c
add dword [ebp - 0x117c], esi
mov esi, dword [edi + 0x10]
cmp dword [edi + 0x14], 0xf
mov eax, edi
jbe 0x42eb86
mov eax, dword [edi]
push str.____________________________________n____________________________________n
lea ecx, [ebp - 0x1160]
mov dword [ebp - 0x1160], eax
mov dword [ebp - 0x115c], esi
call fcn.004332d0
test al, al
jne 0x42ec5f
mov edx, dword [ebp - 0x1198]
lea ecx, [ebp - 0x10c4]
call fcn.0042c980
push dword [ebp + 0xc]
lea eax, [ebp - 0x10c4]
push eax
lea ecx, [ebp - 0x10e0]
call fcn.00432d00
lea eax, [ebp - 0x1010]
mov dword [ebp - 0x1060], 0
mov dword [ebp - 0x1194], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x101c]
movlpd qword [ebp - 0x1070], xmm0
push eax
push ecx
lea eax, [ebp - 0x1078]
movlpd qword [ebp - 0x1068], xmm0
push eax
lea eax, [ebp - 0x1194]
mov dword [ebp - 0x1078], 2
push eax
mov eax, dword [ebp - 0x1174]
add eax, 0x30
mov dword [ebp - 0x1074], 0
push eax
mov dword [ebp - 0x101c], 0
mov dword [ebp - 0x1018], 0x5cacb0
mov dword [ebp - 0x1190], 0x1000
call fcn.004357c0
cmp dword [ebp - 0x101c], 0
mov esi, eax
je 0x42e991
cmp dword [ebp - 0x117c], 0
jbe 0x42eeed
mov esi, dword [edi + 0x14]
mov eax, edi
cmp esi, 0xf
jbe 0x42ec78
mov eax, dword [edi]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x1018], ecx
lea ecx, [ebp - 0x101c]
push str.Invalid_password.
mov dword [ebp - 0x101c], eax
call fcn.00417910
test al, al
jne 0x430b9a
mov eax, edi
cmp esi, 0xf
jbe 0x42eca8
mov eax, dword [edi]
mov dword [ebp - 0x101c], eax
lea ecx, [ebp - 0x101c]
mov eax, dword [edi + 0x10]
push str.Bad_rcon
mov dword [ebp - 0x1018], eax
call fcn.00417910
test al, al
jne 0x430b9a
mov edx, dword [0x5de3e4]
lea ecx, [ebp - 0x101c]
mov dword [ebp - 0x1198], edx
call fcn.0042cc20
push 0
push dword [ebp - 0x101c]
mov ecx, edi
call fcn.00432e60
cmp eax, 0xffffffff
jne 0x42f237
mov eax, dword [ebp - 0x1018]
test eax, eax
je 0x42ed1b
push 0
push eax
mov ecx, edi
call fcn.00432e60
cmp eax, 0xffffffff
jne 0x42f237
push 0
push str.Server_info
mov ecx, edi
call fcn.00432e60
cmp eax, 0xffffffff
je 0x42ef10
mov ecx, 0x5debe4
call fcn.00432830
mov ecx, edi
call fcn.0040ec80
cmp byte [eax + 0x20], 0
lea ecx, [eax + 0x20]
je 0x42eeed
cmp dword [edi + 0x14], 0xf
mov eax, edi
jbe 0x42ed5a
mov eax, dword [edi]
add eax, dword [ebp - 0x117c]
cmp ecx, eax
jae 0x42eeed
cmp byte [ecx], 0x20
mov esi, ecx
je 0x42ed76
nop
inc esi
cmp byte [esi], 0x20
jne 0x42ed70
mov dword [ebp - 0x101c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x1018], 0
movups xmmword [ebp - 0x102c], xmm0
cmp ecx, esi
jne 0x42edb5
mov dword [ebp - 0x101c], 0
mov dword [ebp - 0x1018], 0xf
mov byte [ebp - 0x102c], 0
jmp 0x42edc6
mov eax, esi
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x102c]
call fcn.0040f680
mov dword [ebp - 4], 0x12
mov cl, byte [esi]
cmp cl, 0x20
jne 0x42eddd
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x42edd4
mov dword [ebp - 0x1170], esi
mov eax, esi
cmp cl, 0xa
je 0x42edfc
nop word [eax + eax]
inc eax
cmp byte [eax], 0xa
jne 0x42edf0
mov dword [ebp - 0x1170], eax
mov dword [ebp - 0x1080], 0
xorps xmm0, xmm0
mov dword [ebp - 0x107c], 0
movups xmmword [ebp - 0x1090], xmm0
cmp esi, eax
jne 0x42ee3b
mov dword [ebp - 0x1080], 0
mov dword [ebp - 0x107c], 0xf
mov byte [ebp - 0x1090], 0
jmp 0x42ee50
sub eax, esi
lea ecx, [ebp - 0x1090]
push eax
push esi
call fcn.0040f680
mov eax, dword [ebp - 0x1170]
mov ecx, dword [ebp - 0x1168]
inc eax
mov byte [ebp - 4], 0x13
sub esp, 0x18
movups xmm0, xmmword [ebp - 0x1090]
mov dword [ebp - 0x1174], eax
mov eax, esp
sub esp, 0x18
mov byte [ebp - 0x1090], 0
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x1080]
movq qword [eax + 0x10], xmm0
mov eax, esp
movups xmm0, xmmword [ebp - 0x102c]
mov dword [ebp - 0x1080], 0
mov dword [ebp - 0x107c], 0xf
movups xmmword [eax], xmm0
mov byte [ebp - 0x102c], 0
movq xmm0, qword [ebp - 0x101c]
movq qword [eax + 0x10], xmm0
mov dword [ebp - 0x101c], 0
mov dword [ebp - 0x1018], 0xf
call fcn.004e0f10
mov ecx, dword [ebp - 0x1174]
add esp, 0x30
mov dword [ebp - 4], 0xffffffff
cmp byte [ecx], 0
jne 0x42ed50
mov eax, dword [ebp - 0x117c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0052450f
mov esp, ebp
pop ebp
ret 0x14
push 0
push str.map_rotate..._n_n
mov ecx, edi
call fcn.00432e60
cmp eax, 0xffffffff
je 0x42ef50
call fcn.0042d330
mov ecx, edi
mov byte [eax + 0x2e0], 1
call fcn.0040ec80
push 1
push ecx
push 1
push 1
push ecx
mov ecx, dword [0x5de260]
mov edx, eax
call fcn.004dbe00
add esp, 0x14
jmp 0x42eeed
push 0
push str._sv_mapRotationCurrent__is:__
mov ecx, edi
call fcn.00432e60
mov esi, eax
cmp esi, 0xffffffff
je 0x42f041
push 0
push str.default:__
mov ecx, edi
call fcn.00432e60
cmp eax, 0xffffffff
je 0x42f041
call fcn.0042d330
add esi, 0x1d
mov ecx, edi
push esi
push str.7_
mov byte [eax + 0x2e0], 1
call fcn.00416290
mov ecx, eax
cmp ecx, 0xffffffff
je 0x42eeed
sub esp, 0x18
sub ecx, esi
mov eax, esp
push ecx
push esi
push eax
mov ecx, edi
call fcn.00416230
mov ecx, dword [ebp - 0x1168]
call fcn.0042cf20
mov ecx, edi
call fcn.0040ec80
push str.gametype
lea edi, [esi + eax]
push edi
call fcn.00532170
add esp, 8
test eax, eax
je 0x42eeed
push 0x597478
push edi
call fcn.00532170
mov edx, eax
add esp, 8
test edx, edx
je 0x42eeed
mov al, byte [edx + 4]
add edx, 4
cmp al, 0x20
jne 0x42f00d
mov al, byte [edx + 1]
inc edx
cmp al, 0x20
je 0x42f005
mov esi, edx
nop
cmp al, 0x5e
je 0x42f024
cmp al, 0x37
je 0x42f024
cmp al, 0x22
je 0x42f024
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x42f010
sub esp, 0x18
mov ecx, esp
push ecx
push esi
push edx
call fcn.00434430
mov ecx, dword [ebp - 0x1168]
call fcn.0042ce80
jmp 0x42eeed
push 0
push str._sv_mapRotation__is:__
mov ecx, edi
call fcn.00432e60
mov esi, eax
cmp esi, 0xffffffff
je 0x42f0b1
push 0
push str.default:__
mov ecx, edi
call fcn.00432e60
cmp eax, 0xffffffff
je 0x42f0b1
call fcn.0042d330
add esi, 0x16
mov ecx, edi
push esi
push str.7_
mov byte [eax + 0x2e0], 1
call fcn.00416290
mov ecx, eax
cmp ecx, 0xffffffff
je 0x42eeed
sub esp, 0x18
sub ecx, esi
mov eax, esp
push ecx
push esi
push eax
mov ecx, edi
call fcn.00416230
mov ecx, dword [ebp - 0x1168]
call fcn.0042ced0
jmp 0x42eeed
push 0
push str.sv_hostname
mov ecx, edi
call fcn.00432e60
cmp eax, 0xffffffff
je 0x42f112
call fcn.0042d330
mov ecx, edi
mov byte [eax + 0x2e0], 1
call fcn.0040ec80
add eax, 0x1d
mov esi, eax
cmp byte [eax], 0x5e
je 0x42f0f5
mov dl, byte [eax + 1]
cmp dl, 0x37
je 0x42f0f5
cmp byte [eax + 2], 0x22
je 0x42f0f5
inc eax
cmp dl, 0x5e
jne 0x42f0e1
sub esp, 0x18
mov ecx, esp
push ecx
push eax
push esi
call fcn.00434430
mov ecx, dword [ebp - 0x1168]
call fcn.0042cde0
jmp 0x42eeed
push 0
push str._mapname__is:__
mov ecx, edi
call fcn.00432e60
mov esi, eax
cmp esi, 0xffffffff
je 0x42f225
push 0
push str.default:__
mov ecx, edi
call fcn.00432e60
cmp eax, 0xffffffff
je 0x42f225
call fcn.0042d330
add esi, 0xf
mov ecx, edi
push esi
push str.7_
mov byte [eax + 0x2e0], 1
call fcn.00416290
cmp eax, 0xffffffff
je 0x42eeed
sub eax, esi
mov ecx, edi
push eax
push esi
lea eax, [ebp - 0x1074]
push eax
call fcn.00416230
mov dword [ebp - 4], 0x14
cmp dword [0x5ce354], 0
je 0x42f19d
mov edx, 0x5ce344
lea ecx, [ebp - 0x1074]
call fcn.004194d0
test al, al
jne 0x42f1f9
lea eax, [ebp - 0x1074]
mov ecx, 0x5ce344
push eax
call fcn.00432ee0
sub esp, 0x18
lea ecx, [ebp - 0x1328]
call fcn.0042cca0
mov ecx, dword [ebp - 0x1168]
mov edx, eax
add ecx, 0xd0
mov byte [ebp - 4], 0x15
push ecx
call fcn.00434660
add esp, 4
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x1328]
call fcn.0042cf90
mov ecx, dword [0x5de250]
sub esp, 8
xor edx, edx
call fcn.004df9e0
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x1074]
mov ecx, esp
push eax
call fcn.004167a0
mov ecx, dword [ebp - 0x1168]
call fcn.0042ce30
lea ecx, [ebp - 0x1074]
call fcn.004166d0
jmp 0x42eeed
mov edx, dword [ebp - 0x1168]
mov ecx, edi
call fcn.004f85c0
jmp 0x42eeed
call fcn.0042d330
cmp byte [eax + 0x2e0], 0
jne 0x42f25d
call fcn.0042d330
mov dl, 1
mov ecx, 1
mov byte [eax + 0x2e0], 1
call fcn.004f3650
mov ecx, edi
call fcn.0040ec80
mov cl, byte [eax + 5]
add eax, 5
mov esi, eax
cmp cl, 0xa
je 0x42f27f
cmp cl, 0x3d
je 0x42f27f
mov cl, byte [esi + 1]
inc esi
cmp cl, 0xa
jne 0x42f271
push ecx
push esi
push eax
lea ecx, [ebp - 0x10c0]
call fcn.00434430
mov edx, str.__t_n_f_v_r
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x10c0]
call fcn.004335b0
cmp dword [0x5ce354], 0
je 0x42f2c1
mov edx, 0x5ce344
lea ecx, [ebp - 0x10c0]
call fcn.004194d0
test al, al
jne 0x42f31d
lea eax, [ebp - 0x10c0]
mov ecx, 0x5ce344
push eax
call fcn.00432ee0
sub esp, 0x18
lea ecx, [ebp - 0x1328]
call fcn.0042cca0
mov ecx, dword [ebp - 0x1168]
mov edx, eax
add ecx, 0xd0
mov byte [ebp - 4], 5
push ecx
call fcn.00434660
add esp, 4
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1328]
call fcn.0042cf90
mov ecx, dword [0x5de250]
sub esp, 8
xor edx, edx
call fcn.004df9e0
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x10c0]
mov ecx, esp
push eax
call fcn.00416820
mov ecx, dword [ebp - 0x1168]
call fcn.0042ce30
mov ecx, edi
call fcn.0040ec80
sub esi, eax
mov ecx, edi
inc esi
push esi
push str.0123456789
call fcn.00416290
mov dword [ebp - 0x1014], eax
cmp eax, 0xffffffff
jne 0x42f377
mov ecx, edi
call fcn.00432ec0
mov ecx, 0x5debec
call fcn.004327c0
xor ecx, ecx
xor edx, edx
xor eax, eax
jmp 0x430b07
mov edx, edi
lea ecx, [ebp - 0x1180]
call fcn.004346d0
lea ecx, [ebp - 0x1170]
mov esi, dword [eax]
call fcn.004346d0
mov ecx, dword [ebp - 0x1014]
add ecx, esi
push ecx
push dword [eax]
lea eax, [ebp - 0x1014]
mov ecx, edi
push eax
call fcn.00416550
mov ecx, 0x5debec
call fcn.004327c0
push ecx
push 1
sub esp, 8
mov dword [ebp - 0x119c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x1190], 0
mov edx, edi
mov dword [ebp - 0x1178], 0
lea ecx, [ebp - 0x1084]
movq qword [ebp - 0x1084], xmm0
push 0x597424
mov dword [ebp - 0x107c], 0
call fcn.00433e70
add esp, 0x14
xor ecx, ecx
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x1080]
mov esi, dword [ebp - 0x1084]
mov dword [ebp - 0x1170], eax
mov dword [ebp - 0x1150], ecx
mov ecx, eax
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x42f69e
xor edi, edi
xor eax, eax
mov dword [ebp - 0x115c], edi
mov dword [ebp - 0x119c], eax
mov dword [ebp - 0x1190], eax
mov dword [ebp - 0x1178], eax
nop word [eax + eax]
add edi, esi
mov dword [ebp - 0x1170], edi
cmp dword [edi + 0x14], 0xf
jbe 0x42f478
mov eax, dword [edi]
mov dword [ebp - 0x1170], eax
jmp 0x42f47a
mov eax, edi
mov edi, dword [edi + 0x10]
push 0x38
add edi, eax
lea eax, [ebp - 0x10fc]
push 0
push eax
call fcn.00532960
xorps xmm0, xmm0
mov dword [ebp - 0x10fc], 0
add esp, 0xc
mov byte [ebp - 0x10f8], 0
movups xmmword [ebp - 0x10f4], xmm0
mov dword [ebp - 0x10e4], 0
mov byte [ebp - 0x10e0], 0
mov dword [ebp - 0x10dc], 0
mov dword [ebp - 0x10d8], 0
mov byte [ebp - 0x10d4], 0
mov dword [ebp - 0x10d0], 0
mov dword [ebp - 0x10cc], 0
mov byte [ebp - 0x10c8], 0
xor esi, esi
movq qword [ebp - 0x1020], xmm0
mov dword [ebp - 0x1020], esi
mov dword [ebp - 0x101c], esi
mov dword [ebp - 0x1018], esi
mov byte [ebp - 4], 8
mov edx, 0x5de358
mov eax, dword [ebp - 0x1170]
push eax
push ecx
push edi
push eax
lea ecx, [ebp - 0x10fc]
call fcn.0041c160
add esp, 0x10
test al, al
je 0x42f5d8
nop dword [eax]
inc esi
mov dword [ebp - 0x1180], esi
cmp esi, 2
je 0x42f740
mov ecx, dword [ebp - 0x10f0]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x10f4]
sub ecx, esi
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
ja 0x42f57b
lea esi, [ebp - 0x10d0]
jmp 0x42f57e
add esi, 0xc
mov eax, dword [ebp - 0x101c]
mov esi, dword [esi + 4]
mov dword [ebp - 0x1014], esi
cmp eax, dword [ebp - 0x1018]
je 0x42f5a0
mov dword [eax], esi
add dword [ebp - 0x101c], 4
jmp 0x42f5b3
lea ecx, [ebp - 0x1014]
push ecx
push eax
lea ecx, [ebp - 0x1020]
call fcn.00435900
push esi
push ecx
push edi
push esi
mov edx, 0x5de358
lea ecx, [ebp - 0x10fc]
call fcn.0041c160
mov esi, dword [ebp - 0x1180]
add esp, 0x10
test al, al
jne 0x42f540
mov esi, dword [ebp - 0x1150]
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x1020]
test ecx, ecx
je 0x42f644
mov eax, dword [ebp - 0x1018]
sub eax, ecx
sar eax, 2
lea edx, [eax*4]
mov eax, ecx
cmp edx, 0x1000
jb 0x42f61c
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430bce
push edx
push ecx
call fcn.00524a57
add esp, 8
mov dword [ebp - 0x1020], 0
mov dword [ebp - 0x101c], 0
mov dword [ebp - 0x1018], 0
lea ecx, [ebp - 0x10f4]
mov byte [ebp - 4], 6
call fcn.00414800
mov eax, dword [ebp - 0x1080]
inc esi
mov edi, dword [ebp - 0x115c]
mov ecx, eax
mov dword [ebp - 0x1170], eax
add edi, 0x18
mov dword [ebp - 0x1150], esi
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x1084]
sub ecx, esi
imul ecx
mov ecx, dword [ebp - 0x1150]
sar edx, 2
mov eax, edx
mov dword [ebp - 0x115c], edi
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jb 0x42f460
cmp esi, dword [ebp - 0x1170]
je 0x430ae6
nop word [eax + eax]
cmp dword [esi + 0x14], 0xf
mov ecx, esi
jbe 0x42f6ba
mov ecx, dword [esi]
mov edx, dword [esi + 0x10]
push ecx
push 0x10
push 0x5de358
add edx, ecx
push ecx
call fcn.00435a60
add esp, 0x10
test al, al
jne 0x42f6fc
cmp dword [esi + 0x14], 0xf
mov ecx, esi
jbe 0x42f6de
mov ecx, dword [esi]
mov edx, dword [esi + 0x10]
push ecx
push 0x10
push 0x5de344
add edx, ecx
push ecx
call fcn.00435a60
add esp, 0x10
test al, al
je 0x430ad7
mov ecx, dword [esi + 0x14]
xor edi, edi
mov dword [ebp - 0x115c], edi
mov dword [ebp - 0x1188], edi
nop dword [eax]
mov eax, esi
cmp ecx, 0xf
jbe 0x42f719
mov eax, dword [esi]
mov al, byte [eax + edi]
cmp al, 0x20
je 0x42f734
cmp al, 9
je 0x42f734
cmp al, 0xa
je 0x42f734
cmp al, 0xc
je 0x42f734
cmp al, 0xb
jne 0x42f7d0
cmp edi, 3
jge 0x42f7d0
inc edi
jmp 0x42f710
mov eax, dword [ebp - 0x1020]
push ecx
push edi
lea ecx, [ebp - 0x1074]
push dword [eax]
call fcn.00419680
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x1084]
mov esi, dword [ebp - 0x1150]
push esi
call fcn.00415770
mov ecx, eax
mov eax, dword [ebp - 0x1020]
push edi
push dword [eax]
lea eax, [ebp - 0x116c]
push eax
call fcn.00416550
mov eax, dword [ebp - 0x1084]
lea ecx, [ebp - 0x1014]
mov dword [ebp - 0x1014], eax
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x118c]
push eax
call fcn.00432770
lea ecx, [ebp - 0x1074]
push ecx
lea ecx, [ebp - 0x1084]
push dword [eax]
lea eax, [ebp - 0x1188]
push eax
call fcn.00432bc0
lea ecx, [ebp - 0x1074]
call fcn.004166d0
jmp 0x42f5de
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x42f7da
mov eax, dword [esi]
movsx eax, byte [edi + eax]
push eax
call fcn.0053d4b0
add esp, 4
test eax, eax
je 0x42f829
cmp edi, 3
jge 0x42f829
mov edx, dword [ebp - 0x115c]
cmp edx, 2
jge 0x42f829
mov eax, dword [ebp - 0x1188]
lea ecx, [eax + eax*4]
mov eax, esi
add ecx, ecx
cmp dword [esi + 0x14], 0xf
jbe 0x42f810
mov eax, dword [esi]
movsx eax, byte [edi + eax]
inc edx
add eax, 0xffffffd0
mov dword [ebp - 0x115c], edx
add eax, ecx
inc edi
mov dword [ebp - 0x1188], eax
jmp 0x42f7d0
mov ecx, dword [ebp - 0x1188]
cmp ecx, 0x40
jl 0x42f84c
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
dec edi
mov dword [ebp - 0x1188], eax
lea eax, [edi + 6]
xor ecx, ecx
mov dword [ebp - 0x115c], eax
mov dword [ebp - 0x118c], ecx
cmp edi, eax
jge 0x42f895
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x42f86b
mov eax, dword [esi]
movsx eax, byte [edi + eax]
push eax
call fcn.0053d4b0
add esp, 4
test eax, eax
jne 0x42f895
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x42f886
mov eax, dword [esi]
cmp byte [edi + eax], 0x2d
je 0x42f895
inc edi
cmp edi, dword [ebp - 0x115c]
jl 0x42f861
mov edx, dword [esi + 0x14]
mov eax, esi
cmp edx, 0xf
jbe 0x42f8a1
mov eax, dword [esi]
mov al, byte [eax + edi]
mov byte [ebp - 0x1151], al
cmp al, 0x2d
jne 0x42f8b0
inc edi
nop
mov eax, esi
cmp edx, 0xf
jbe 0x42f8b9
mov eax, dword [esi]
movsx eax, byte [eax + edi]
push eax
call fcn.0053d4b0
add esp, 4
test eax, eax
je 0x42f8fa
cmp edi, dword [ebp - 0x115c]
jge 0x42f8fa
mov eax, dword [ebp - 0x118c]
mov edx, dword [esi + 0x14]
lea ecx, [eax + eax*4]
mov eax, esi
add ecx, ecx
cmp edx, 0xf
jbe 0x42f8e9
mov eax, dword [esi]
movsx eax, byte [edi + eax]
add ecx, 0xffffffd0
add ecx, eax
mov dword [ebp - 0x118c], ecx
jmp 0x42f8ae
cmp byte [ebp - 0x1151], 0x2d
jne 0x42f911
mov eax, dword [ebp - 0x118c]
neg eax
mov dword [ebp - 0x118c], eax
mov edx, dword [esi + 0x14]
lea ecx, [edi + 5]
mov eax, esi
cmp edx, 0xf
jbe 0x42f920
mov eax, dword [esi]
mov al, byte [eax + edi]
cmp al, 0x20
je 0x42f937
cmp al, 9
je 0x42f937
cmp al, 0xa
je 0x42f937
cmp al, 0xc
je 0x42f937
cmp al, 0xb
jne 0x42f93e
cmp edi, ecx
jge 0x42f93e
inc edi
jmp 0x42f917
xor ecx, ecx
mov dword [ebp - 0x1158], edi
mov dword [ebp - 0x1150], ecx
mov dword [ebp - 0x116c], ecx
mov edx, dword [esi + 0x14]
mov eax, esi
cmp edx, 0xf
jbe 0x42f95e
mov eax, dword [esi]
mov al, byte [eax + edi]
cmp al, 0x20
je 0x42fa67
cmp al, 9
je 0x42fa67
cmp al, 0xa
je 0x42fa67
cmp al, 0xc
je 0x42fa67
cmp al, 0xb
je 0x42fa67
mov eax, esi
cmp edx, 0xf
jbe 0x42f992
mov eax, dword [esi]
movsx eax, byte [edi + eax]
push eax
call fcn.0053d420
add esp, 4
test eax, eax
jne 0x42f9b7
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x42f9ad
mov eax, dword [esi]
cmp byte [eax + edi], 0x2d
jne 0x42fa61
cmp dword [ebp - 0x116c], 3
mov ecx, dword [ebp - 0x1150]
jge 0x42fa67
cmp ecx, 4
jge 0x42fa67
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x42f9dd
mov eax, dword [esi]
movsx eax, byte [edi + eax]
push eax
call fcn.0053d4b0
add esp, 4
test eax, eax
mov eax, dword [ebp - 0x116c]
je 0x42f9fb
inc eax
mov dword [ebp - 0x116c], eax
mov ecx, dword [ebp - 0x1150]
inc edi
inc ecx
mov dword [ebp - 0x1150], ecx
cmp ecx, 2
jne 0x42f952
cmp eax, 1
jne 0x42f952
push dword [ebp - 0x1158]
mov ecx, esi
call fcn.00416530
mov ecx, dword [ebp - 0x1150]
cmp byte [eax], 0x2d
jne 0x42f952
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x42fa41
mov eax, dword [esi]
mov ecx, dword [ebp - 0x1158]
cmp byte [eax + ecx + 1], 0x31
mov ecx, dword [ebp - 0x1150]
jne 0x42f952
mov edi, dword [ebp - 0x1158]
add edi, 2
mov ecx, dword [ebp - 0x1150]
mov eax, dword [esi + 0x10]
xorps xmm0, xmm0
mov edx, dword [ebp - 0x1158]
mov dword [ebp - 0x1098], 0
mov dword [ebp - 0x1094], 0
movups xmmword [ebp - 0x10a8], xmm0
cmp eax, edx
jb 0x430bd3
sub eax, edx
mov edx, esi
cmp eax, ecx
cmovb ecx, eax
cmp dword [esi + 0x14], 0xf
jbe 0x42faa7
mov edx, dword [esi]
mov eax, dword [ebp - 0x1158]
push ecx
add eax, edx
lea ecx, [ebp - 0x10a8]
push eax
call fcn.0040f680
or dword [ebp - 0x1184], 0x100
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x10a8]
cmp dword [ebp - 0x1094], 0xf
mov eax, dword [ebp - 0x1098]
cmova ecx, dword [ebp - 0x10a8]
seta dl
mov dword [ebp - 0x115c], 0
mov byte [ebp - 0x1151], dl
mov dword [ebp - 0x1150], eax
cmp eax, 3
jne 0x42fb8e
sub eax, 4
mov edx, 0x597358
mov dword [ebp - 0x1158], eax
jb 0x42fb33
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x42fb38
mov eax, dword [ebp - 0x1158]
add ecx, 4
add edx, 4
sub eax, 4
mov dword [ebp - 0x1158], eax
jae 0x42fb16
cmp eax, 0xfffffffc
je 0x42fb78
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x42fb71
cmp dword [ebp - 0x1158], 0xfffffffd
je 0x42fb78
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x42fb71
cmp dword [ebp - 0x1158], 0xfffffffe
je 0x42fb78
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x42fb71
cmp dword [ebp - 0x1158], 0xffffffff
je 0x42fb78
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x42fb78
sbb eax, eax
or eax, 1
jmp 0x42fb7a
xor eax, eax
test eax, eax
je 0x42fc3b
mov eax, dword [ebp - 0x1150]
mov dl, byte [ebp - 0x1151]
test dl, dl
lea ecx, [ebp - 0x10a8]
cmovne ecx, dword [ebp - 0x10a8]
cmp eax, 2
jne 0x42fc1e
sub eax, 4
mov edx, 0x59735c
mov dword [ebp - 0x1150], eax
jb 0x42fbd3
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x42fbd8
mov eax, dword [ebp - 0x1150]
add ecx, 4
add edx, 4
sub eax, 4
mov dword [ebp - 0x1150], eax
jae 0x42fbb6
cmp eax, 0xfffffffc
je 0x42fc18
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x42fc11
cmp dword [ebp - 0x1150], 0xfffffffd
je 0x42fc18
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x42fc11
cmp dword [ebp - 0x1150], 0xfffffffe
je 0x42fc18
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x42fc11
cmp dword [ebp - 0x1150], 0xffffffff
je 0x42fc18
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x42fc18
sbb eax, eax
or eax, 1
jmp 0x42fc1a
xor eax, eax
test eax, eax
je 0x42fc3b
lea edx, [ebp - 0x115c]
lea ecx, [ebp - 0x10a8]
call fcn.004b6730
test al, al
je 0x42fc3b
inc dword [ebp - 0x119c]
jmp 0x42fc41
inc dword [ebp - 0x1190]
mov eax, dword [ebp - 0x1198]
cmp eax, 1
je 0x42fc56
cmp eax, 2
mov eax, 0x21
jne 0x42fc5b
mov eax, 8
mov edx, dword [esi + 0x14]
add eax, edi
mov dword [ebp - 0x1150], eax
mov ecx, esi
cmp edx, 0xf
jbe 0x42fc6f
mov ecx, dword [esi]
mov cl, byte [ecx + edi]
cmp cl, 0x20
je 0x42fc8b
cmp cl, 9
je 0x42fc8b
cmp cl, 0xa
je 0x42fc8b
cmp cl, 0xc
je 0x42fc8b
cmp cl, 0xb
jne 0x42fc92
cmp edi, eax
jge 0x42fc92
inc edi
jmp 0x42fc66
mov eax, dword [ebp - 0x1198]
mov dword [ebp - 0x115c], edi
cmp eax, 1
je 0x42fcd0
cmp eax, 2
je 0x42fcd0
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x42fcb2
mov eax, dword [esi]
movsx eax, byte [eax + edi]
push eax
call fcn.0053d780
add esp, 4
test eax, eax
je 0x42fcf6
cmp edi, dword [ebp - 0x1150]
jge 0x42fcf6
inc edi
jmp 0x42fca8
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x42fcda
mov eax, dword [esi]
movsx eax, byte [edi + eax]
push eax
call fcn.0053d4b0
add esp, 4
test eax, eax
je 0x42fcf6
cmp edi, dword [ebp - 0x1150]
jge 0x42fcf6
inc edi
jmp 0x42fcd0
mov eax, dword [esi + 0x10]
xorps xmm0, xmm0
mov edx, dword [ebp - 0x115c]
mov dword [ebp - 0x10cc], 0
mov dword [ebp - 0x10c8], 0
movups xmmword [ebp - 0x10dc], xmm0
cmp eax, edx
jb 0x430bd3
sub eax, edx
mov ecx, edi
sub ecx, edx
cmp eax, ecx
cmovb ecx, eax
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x42fd3a
mov eax, dword [esi]
push ecx
add eax, edx
lea ecx, [ebp - 0x10dc]
push eax
call fcn.0040f680
or dword [ebp - 0x1184], 0x80
push ecx
lea edx, [ebp - 0x10dc]
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x1114]
call fcn.004346f0
add esp, 4
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x10c8]
cmp ecx, 0xf
jbe 0x42fdaa
mov edx, dword [ebp - 0x10dc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x42fda0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430bce
push ecx
push edx
call fcn.00524a57
add esp, 8
mov ecx, dword [esi + 0x14]
nop dword [eax]
mov eax, esi
cmp ecx, 0xf
jbe 0x42fdb9
mov eax, dword [esi]
mov al, byte [eax + edi]
cmp al, 0x20
je 0x42fdd0
cmp al, 9
je 0x42fdd0
cmp al, 0xa
je 0x42fdd0
cmp al, 0xc
je 0x42fdd0
cmp al, 0xb
jne 0x42fdd3
inc edi
jmp 0x42fdb0
xorps xmm0, xmm0
mov dword [ebp - 0x1164], edi
movups xmmword [ebp - 0x1044], xmm0
mov dword [ebp - 0x1034], 0
mov dword [ebp - 0x1030], 0xf
mov byte [ebp - 0x1044], 0
push 0x10
lea ecx, [ebp - 0x1044]
mov byte [ebp - 4], 0xe
call fcn.004162e0
xorps xmm0, xmm0
mov dword [ebp - 0x104c], 0
movups xmmword [ebp - 0x105c], xmm0
mov dword [ebp - 0x1048], 0xf
mov byte [ebp - 0x105c], 0
push 0x38
lea eax, [ebp - 0x114c]
push 0
push eax
call fcn.00532960
xorps xmm0, xmm0
mov dword [ebp - 0x114c], 0
add esp, 0xc
mov byte [ebp - 0x1148], 0
movups xmmword [ebp - 0x1144], xmm0
mov dword [ebp - 0x1134], 0
mov byte [ebp - 0x1130], 0
mov dword [ebp - 0x112c], 0
mov dword [ebp - 0x1128], 0
mov byte [ebp - 0x1124], 0
mov dword [ebp - 0x1120], 0
mov dword [ebp - 0x111c], 0
mov byte [ebp - 0x1118], 0
mov byte [ebp - 4], 0x10
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x115c], esi
cmp edx, 0xf
jbe 0x42feca
mov eax, dword [esi]
mov ecx, eax
add ecx, dword [esi + 0x10]
mov dword [ebp - 0x115c], eax
jmp 0x42fed6
mov ecx, dword [esi + 0x10]
mov eax, esi
add ecx, esi
cmp edx, 0xf
jbe 0x42fed8
mov eax, dword [esi]
push dword [ebp - 0x115c]
mov edx, 0x5de344
push ecx
push ecx
push eax
lea ecx, [ebp - 0x114c]
call fcn.0041c160
add esp, 0x10
test al, al
je 0x430021
mov ecx, dword [ebp - 0x1140]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x1144]
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
ja 0x42ff25
lea ecx, [ebp - 0x1120]
jmp 0x42ff2e
mov ecx, dword [ebp - 0x1144]
add ecx, 0xc
lea eax, [ebp - 0x1074]
push eax
call fcn.00414750
or dword [ebp - 0x1184], 0x200
lea eax, [ebp - 0x1074]
push eax
lea ecx, [ebp - 0x1044]
call fcn.00416720
mov ecx, dword [ebp - 0x1060]
cmp ecx, 0xf
jbe 0x42ff90
mov edx, dword [ebp - 0x1074]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x42ff86
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430bce
push ecx
push edx
call fcn.00524a57
add esp, 8
cmp dword [esi + 0x14], 0xf
mov ecx, esi
jbe 0x42ff9a
mov ecx, dword [esi]
mov edx, dword [esi + 0x10]
push 2
push 0x597428
push edi
call fcn.00434d60
mov ecx, eax
add esp, 0xc
cmp ecx, 0xffffffff
jne 0x42ffc4
push 0
push 0x597428
mov ecx, esi
call fcn.00416290
mov ecx, eax
cmp dword [esi + 0x14], 0xf
jbe 0x42ffd0
mov edx, dword [esi]
add ecx, edx
jmp 0x42ffd4
add ecx, esi
mov edx, esi
lea eax, [edx + edi]
sub ecx, eax
push ecx
push eax
lea ecx, [ebp - 0x105c]
call fcn.004176a0
cmp dword [ebp - 0x104c], 0
je 0x4306a5
lea ecx, [ebp - 0x105c]
call fcn.004163d0
cmp byte [eax], 0x5e
je 0x430011
call fcn.004163d0
cmp byte [eax], 0x37
jne 0x4306a5
lea ecx, [ebp - 0x105c]
call fcn.00432ea0
jmp 0x4306a5
cmp dword [esi + 0x14], 0xf
mov edx, esi
mov eax, dword [esi + 0x10]
jbe 0x43002e
mov edx, dword [esi]
test eax, eax
je 0x430251
or ecx, 0xffffffff
dec eax
cmp eax, ecx
cmovb ecx, eax
add ecx, edx
cmp byte [ecx], 0x3a
je 0x430054
cmp ecx, edx
je 0x430251
dec ecx
cmp byte [ecx], 0x3a
jne 0x430046
sub ecx, edx
cmp ecx, 0xffffffff
je 0x430251
lea edi, [ecx - 1]
mov dword [ebp - 0x116c], 0
mov dword [ebp - 0x1158], 0
mov dword [ebp - 0x115c], 1
mov dword [ebp - 0x1150], edi
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x430090
mov eax, dword [esi]
movsx eax, byte [eax + edi]
push eax
call fcn.0053d4b0
add esp, 4
test eax, eax
jne 0x4300b5
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x4300ab
mov eax, dword [esi]
cmp byte [eax + edi], 0x2e
jne 0x430511
mov edx, dword [esi + 0x14]
mov eax, esi
cmp edx, 0xf
jbe 0x4300c1
mov eax, dword [esi]
cmp byte [eax + edi], 0x2e
jne 0x430164
mov eax, dword [ebp - 0x116c]
inc eax
mov dword [ebp - 0x116c], eax
cmp eax, 3
jg 0x430511
mov dword [ebp - 0x115c], 1
mov dword [ebp - 0x1158], 0
mov eax, esi
cmp edx, 0xf
jbe 0x4300fe
mov eax, dword [esi]
mov al, byte [eax + edi]
mov edx, dword [ebp - 0x1030]
mov ecx, dword [ebp - 0x1034]
mov byte [ebp - 0x1180], al
mov eax, edx
sub eax, ecx
cmp eax, 1
jb 0x43022e
inc ecx
lea edi, [ebp - 0x1044]
cmp edx, 0xf
mov dword [ebp - 0x1034], ecx
push ecx
cmova edi, dword [ebp - 0x1044]
push edi
lea eax, [edi + 1]
push eax
call fcn.005323e0
movsx ecx, byte [ebp - 0x1180]
add esp, 0xc
movzx eax, cl
shl cx, 8
or cx, ax
mov byte [edi], cl
mov edi, dword [ebp - 0x1150]
dec edi
jmp 0x430080
mov eax, esi
cmp edx, 0xf
jbe 0x43016d
mov eax, dword [esi]
movsx eax, byte [eax + edi]
mov ecx, dword [ebp - 0x115c]
sub eax, 0x30
imul eax, ecx
lea ecx, [ecx + ecx*4]
add ecx, ecx
add dword [ebp - 0x1158], eax
cmp dword [ebp - 0x1158], 0xff
mov dword [ebp - 0x115c], ecx
jle 0x4300f5
mov eax, dword [ebp - 0x116c]
inc eax
mov dword [ebp - 0x116c], eax
cmp eax, 3
jg 0x430511
mov edx, dword [ebp - 0x1030]
mov eax, edx
mov ecx, dword [ebp - 0x1034]
sub eax, ecx
mov dword [ebp - 0x1158], 0
mov dword [ebp - 0x115c], 1
cmp eax, 1
jb 0x430210
inc ecx
lea edi, [ebp - 0x1044]
cmp edx, 0xf
mov dword [ebp - 0x1034], ecx
push ecx
cmova edi, dword [ebp - 0x1044]
push edi
lea eax, [edi + 1]
push eax
call fcn.005323e0
mov byte [edi], 0x2e
add esp, 0xc
mov edi, dword [ebp - 0x1150]
jmp 0x430086
push 0x2e
push 1
push 0
push dword [ebp - 0x1174]
lea ecx, [ebp - 0x1044]
push 1
call fcn.00419d70
jmp 0x430086
push dword [ebp - 0x1180]
lea ecx, [ebp - 0x1044]
push 1
push 0
push dword [ebp - 0x1174]
push 1
call fcn.00419d70
dec edi
jmp 0x430080
cmp dword [esi + 0x14], 0xf
mov edx, esi
mov eax, dword [esi + 0x10]
jbe 0x43025e
mov edx, dword [esi]
test eax, eax
je 0x430517
or ecx, 0xffffffff
dec eax
cmp eax, ecx
cmovb ecx, eax
add ecx, edx
cmp byte [ecx], 0x2e
je 0x430284
cmp ecx, edx
je 0x430517
dec ecx
cmp byte [ecx], 0x2e
jne 0x430276
sub ecx, edx
cmp ecx, 0xffffffff
je 0x430517
lea edi, [ecx - 1]
mov dword [ebp - 0x115c], 0
mov dword [ebp - 0x1150], edi
lea edi, [ecx + 1]
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x4302af
mov eax, dword [esi]
movsx eax, byte [eax + edi]
push eax
call fcn.0053d4b0
add esp, 4
test eax, eax
je 0x430309
mov eax, dword [ebp - 0x115c]
inc edi
mov edx, dword [esi + 0x14]
lea ecx, [eax + eax*4]
mov eax, esi
add ecx, ecx
cmp edx, 0xf
jbe 0x4302d8
mov eax, dword [esi]
movsx eax, byte [eax + edi]
add eax, 0xffffffd0
add eax, ecx
mov dword [ebp - 0x115c], eax
cmp eax, 0xff
jg 0x430309
mov eax, esi
cmp edx, 0xf
jbe 0x4302f7
mov eax, dword [esi]
movzx eax, byte [eax + edi]
lea ecx, [ebp - 0x1044]
push eax
call fcn.004163f0
jmp 0x4302a5
push 0x2e
push 1
push 0
lea ecx, [ebp - 0x1044]
call fcn.00416640
mov dword [ebp - 0x115c], 0
mov dword [ebp - 0x1158], 0
mov dword [ebp - 0x116c], 1
mov edi, dword [ebp - 0x1150]
nop
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x43034a
mov eax, dword [esi]
movsx eax, byte [eax + edi]
push eax
call fcn.0053d4b0
add esp, 4
test eax, eax
jne 0x43036f
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x430365
mov eax, dword [esi]
cmp byte [eax + edi], 0x2e
jne 0x430511
mov edx, dword [esi + 0x14]
mov eax, esi
cmp edx, 0xf
jbe 0x43037b
mov eax, dword [esi]
cmp byte [eax + edi], 0x2e
jne 0x430424
mov eax, dword [ebp - 0x115c]
inc eax
mov dword [ebp - 0x115c], eax
cmp eax, 2
jg 0x430511
mov dword [ebp - 0x116c], 1
mov dword [ebp - 0x1158], 0
mov eax, esi
cmp edx, 0xf
jbe 0x4303b8
mov eax, dword [esi]
mov al, byte [eax + edi]
mov edx, dword [ebp - 0x1030]
mov ecx, dword [ebp - 0x1034]
mov byte [ebp - 0x1014], al
mov eax, edx
sub eax, ecx
cmp eax, 1
jb 0x4304e8
inc ecx
lea edi, [ebp - 0x1044]
cmp edx, 0xf
mov dword [ebp - 0x1034], ecx
push ecx
cmova edi, dword [ebp - 0x1044]
push edi
lea eax, [edi + 1]
push eax
call fcn.005323e0
movsx ecx, byte [ebp - 0x1014]
add esp, 0xc
movzx eax, cl
shl cx, 8
or cx, ax
mov byte [edi], cl
mov edi, dword [ebp - 0x1150]
dec edi
mov dword [ebp - 0x1150], edi
jmp 0x430340
mov eax, esi
cmp edx, 0xf
jbe 0x43042d
mov eax, dword [esi]
movsx eax, byte [eax + edi]
mov ecx, dword [ebp - 0x116c]
sub eax, 0x30
imul eax, ecx
lea ecx, [ecx + ecx*4]
add ecx, ecx
add dword [ebp - 0x1158], eax
cmp dword [ebp - 0x1158], 0xff
mov dword [ebp - 0x116c], ecx
jle 0x4303af
mov eax, dword [ebp - 0x115c]
inc eax
mov dword [ebp - 0x115c], eax
cmp eax, 2
jg 0x430511
mov edx, dword [ebp - 0x1030]
mov eax, edx
mov ecx, dword [ebp - 0x1034]
sub eax, ecx
mov dword [ebp - 0x1158], 0
mov dword [ebp - 0x116c], 1
cmp eax, 1
jb 0x4304ca
inc ecx
lea edi, [ebp - 0x1044]
cmp edx, 0xf
mov dword [ebp - 0x1034], ecx
push ecx
cmova edi, dword [ebp - 0x1044]
push edi
lea eax, [edi + 1]
push eax
call fcn.005323e0
add esp, 0xc
mov byte [edi], 0x2e
jmp 0x430338
push 0x2e
push 1
push 0
push dword [ebp - 0x1174]
lea ecx, [ebp - 0x1044]
push 1
call fcn.00419d70
jmp 0x430340
push dword [ebp - 0x1014]
lea ecx, [ebp - 0x1044]
push 1
push 0
push dword [ebp - 0x1174]
push 1
call fcn.00419d70
dec edi
mov dword [ebp - 0x1150], edi
jmp 0x430340
mov edi, dword [ebp - 0x1164]
cmp dword [ebp - 0x1034], 0
je 0x43054a
push 0
lea ecx, [ebp - 0x1044]
call fcn.00416530
cmp byte [eax], 0x30
jne 0x43054a
push 1
push 0
lea ecx, [ebp - 0x1044]
call fcn.004165e0
mov ecx, dword [ebp - 0x1150]
inc ecx
jmp 0x430550
mov ecx, dword [ebp - 0x1150]
mov edx, dword [esi + 0x14]
mov eax, esi
cmp edx, 0xf
jbe 0x43055c
mov eax, dword [esi]
mov al, byte [eax + ecx]
cmp al, 0x20
je 0x430573
cmp al, 9
je 0x430573
cmp al, 0xa
je 0x430573
cmp al, 0xc
je 0x430573
cmp al, 0xb
jne 0x430576
dec ecx
jmp 0x430553
mov edx, dword [esi + 0x14]
nop dword [eax]
mov eax, esi
cmp edx, 0xf
jbe 0x430589
mov eax, dword [esi]
mov al, byte [eax + ecx]
sub al, 0x30
cmp al, 9
ja 0x430595
dec ecx
jmp 0x430580
mov edx, dword [esi + 0x14]
mov eax, esi
cmp edx, 0xf
jbe 0x4305a1
mov eax, dword [esi]
mov al, byte [eax + ecx]
cmp al, 0x20
je 0x4305b8
cmp al, 9
je 0x4305b8
cmp al, 0xa
je 0x4305b8
cmp al, 0xc
je 0x4305b8
cmp al, 0xb
jne 0x4305bb
dec ecx
jmp 0x430598
cmp dword [esi + 0x14], 0xf
jbe 0x4305ca
mov eax, dword [esi]
inc eax
add ecx, eax
mov eax, dword [esi]
jmp 0x4305cf
inc ecx
mov eax, esi
add ecx, esi
add eax, edi
sub ecx, eax
push ecx
push eax
lea ecx, [ebp - 0x105c]
call fcn.004176a0
cmp dword [ebp - 0x1048], 0xf
lea ecx, [ebp - 0x105c]
mov edi, dword [ebp - 0x105c]
mov edx, dword [ebp - 0x104c]
cmova ecx, edi
push 2
push 0x597428
push 0xffffffffffffffff
seta byte [ebp - 0x1151]
call fcn.00434920
add esp, 0xc
cmp eax, 0xffffffff
je 0x430695
cmp byte [ebp - 0x1151], 0
lea ecx, [ebp - 0x105c]
je 0x43063f
mov ecx, dword [ebp - 0x104c]
mov dl, byte [edi + eax]
add ecx, edi
mov byte [ebp - 0x1151], dl
jmp 0x430658
mov cl, byte [eax + ecx]
lea edx, [ebp - 0x105c]
mov byte [ebp - 0x1151], cl
mov edi, edx
mov ecx, dword [ebp - 0x104c]
add ecx, edx
push ecx
add eax, edi
lea ecx, [ebp - 0x105c]
push eax
lea eax, [ebp - 0x1018]
push eax
call fcn.00416550
cmp byte [ebp - 0x1151], 0x37
jne 0x430695
cmp dword [ebp - 0x104c], 1
jb 0x430695
lea ecx, [ebp - 0x105c]
call fcn.004163d0
cmp byte [eax], 0x5e
jne 0x430695
call fcn.00432ea0
mov edx, str.__t_n_f_v_r
lea ecx, [ebp - 0x105c]
call fcn.004335b0
imul edi, dword [ebp - 0x1178], 0x188
mov edx, dword [ebp - 0x1168]
mov ecx, dword [ebp - 0x1188]
mov eax, dword [edx + 0xd0]
mov dword [ebp - 0x115c], edi
mov dword [eax + edi], ecx
mov eax, dword [edx + 0xd0]
mov ecx, dword [ebp - 0x118c]
mov dword [eax + edi + 4], ecx
lea ecx, [ebp - 0x10a8]
cmp dword [ebp - 0x1094], 0xf
mov eax, dword [edx + 0xd0]
cmova ecx, dword [ebp - 0x10a8]
add eax, 0x20
push ecx
add eax, edi
push 5
push eax
call fcn.0053d80b
cmp dword [ebp - 0x1100], 0xf
lea ecx, [ebp - 0x1114]
mov eax, dword [ebp - 0x1168]
cmova ecx, dword [ebp - 0x1114]
add edi, 0x61
push ecx
push 0x21
mov eax, dword [eax + 0xd0]
add eax, edi
push eax
call fcn.0053d80b
mov eax, dword [ebp - 0x1168]
lea ecx, [ebp - 0x105c]
mov edi, 0x20
cmp dword [ebp - 0x104c], edi
cmovb edi, dword [ebp - 0x104c]
cmp dword [ebp - 0x1048], 0xf
mov eax, dword [eax + 0xd0]
cmova ecx, dword [ebp - 0x105c]
add eax, 0x40
add eax, dword [ebp - 0x115c]
push edi
push ecx
push 0x21
push eax
call fcn.0053cf42
mov edx, dword [ebp - 0x1168]
add esp, 0x28
mov ecx, dword [ebp - 0x115c]
xorps xmm0, xmm0
movups xmmword [ebp - 0x10dc], xmm0
mov dword [ebp - 0x10cc], 0
mov eax, dword [edx + 0xd0]
add eax, ecx
mov dword [ebp - 0x10c8], 0
add ecx, 0x40
mov byte [eax + edi + 0x40], 0
mov edx, dword [edx + 0xd0]
add edx, ecx
mov ecx, edx
lea edi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4307c0
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x10dc]
call fcn.0040f680
lea edx, [ebp - 0x10dc]
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x1074]
call fcn.004f82a0
mov edi, dword [ebp - 0x1168]
push eax
mov ecx, dword [edi + 0xd0]
add ecx, 0x124
add ecx, dword [ebp - 0x115c]
call fcn.00416720
mov ecx, dword [ebp - 0x1060]
cmp ecx, 0xf
jbe 0x430843
mov edx, dword [ebp - 0x1074]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x430839
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430bce
push ecx
push edx
call fcn.00524a57
add esp, 8
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x10c8]
mov dword [ebp - 0x1064], 0
mov dword [ebp - 0x1060], 0xf
mov byte [ebp - 0x1074], 0
cmp ecx, 0xf
jbe 0x43089c
mov edx, dword [ebp - 0x10dc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x430892
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430bce
push ecx
push edx
call fcn.00524a57
add esp, 8
imul ecx, dword [ebp - 0x1178], 0x188
lea eax, [ebp - 0x1044]
add ecx, 0x13c
add ecx, dword [edi + 0xd0]
cmp ecx, eax
je 0x4308d6
cmp dword [ebp - 0x1030], 0xf
push dword [ebp - 0x1034]
cmova eax, dword [ebp - 0x1044]
push eax
call fcn.004176a0
imul edx, dword [ebp - 0x1178], 0x188
add edx, dword [edi + 0xd0]
cmp dword [edx + 0x150], 0xf
lea ecx, [edx + 0x13c]
jbe 0x4308fb
mov ecx, dword [edx + 0x13c]
push dword [edx + 0x14c]
push ecx
mov ecx, dword [ebp - 0x1174]
lea ecx, [ecx + 8]
call fcn.004a9e50
imul eax, dword [ebp - 0x1178], 0x188
add esp, 8
mov dword [ebp - 0x115c], 0
add eax, dword [edi + 0xd0]
cmp dword [eax + 0x150], 0xf
lea ecx, [eax + 0x13c]
jbe 0x430942
mov ecx, dword [eax + 0x13c]
push dword [eax + 0x14c]
push ecx
lea ecx, [ebp - 0x115c]
call fcn.004a9a50
add esp, 8
test al, al
je 0x43097d
imul eax, dword [ebp - 0x1178], 0x188
mov ecx, 0x5debec
add eax, 0x13c
add eax, dword [edi + 0xd0]
push eax
call fcn.004327a0
inc dword [eax]
inc dword [ebp - 0x1178]
lea ecx, [ebp - 0x1144]
call fcn.00414800
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x1048]
cmp ecx, 0xf
jbe 0x4309cc
mov edx, dword [ebp - 0x105c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4309c2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430bce
push ecx
push edx
call fcn.00524a57
add esp, 8
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x1030]
mov dword [ebp - 0x104c], 0
mov dword [ebp - 0x1048], 0xf
mov byte [ebp - 0x105c], 0
cmp ecx, 0xf
jbe 0x430a25
mov edx, dword [ebp - 0x1044]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x430a1b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430bce
push ecx
push edx
call fcn.00524a57
add esp, 8
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x1100]
mov dword [ebp - 0x1034], 0
mov dword [ebp - 0x1030], 0xf
mov byte [ebp - 0x1044], 0
cmp ecx, 0xf
jbe 0x430a7e
mov edx, dword [ebp - 0x1114]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x430a74
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430bce
push ecx
push edx
call fcn.00524a57
add esp, 8
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x1094]
mov dword [ebp - 0x1104], 0
mov dword [ebp - 0x1100], 0xf
mov byte [ebp - 0x1114], 0
cmp ecx, 0xf
jbe 0x430ad7
mov edx, dword [ebp - 0x10a8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x430acd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430bce
push ecx
push edx
call fcn.00524a57
add esp, 8
add esi, 0x18
cmp esi, dword [ebp - 0x1170]
jne 0x42f6b0
lea ecx, [ebp - 0x1084]
mov byte [ebp - 4], 4
call fcn.004172f0
mov eax, dword [ebp - 0x1178]
mov ecx, dword [ebp - 0x119c]
mov edx, dword [ebp - 0x1190]
mov esi, dword [ebp - 0x1168]
mov dword [esi + 0x2cc], eax
mov eax, 0x88888889
mov dword [esi + 0x2c4], ecx
mov ecx, dword [0x5dc09c]
inc ecx
mov dword [esi + 0x2c8], edx
mul ecx
mov dword [0x5dc09c], ecx
shr edx, 5
mov eax, edx
shl eax, 4
sub eax, edx
shl eax, 2
cmp ecx, eax
sete dl
cmp ecx, 0x3c
jne 0x430b54
mov dword [0x5dc09c], 0
mov ecx, esi
call fcn.004ee5f0
mov ecx, dword [ebp - 0x10ac]
cmp ecx, 0xf
jbe 0x42eeed
mov edx, dword [ebp - 0x10c0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x430b8b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430bce
push ecx
push edx
call fcn.00524a57
add esp, 8
jmp 0x42eeed
mov eax, dword [0x5de3b0]
cmp eax, dword [0x5de3b4]
jb 0x430bae
xor eax, eax
mov dword [0x5de3b0], eax
imul eax, eax, 0x2ec
mov dl, 1
xor cl, cl
mov byte [eax + 0x5df6d0], 0
call fcn.004f3660
jmp 0x42eeed
call fcn.00524bb3
call fcn.0053ce3a
call fcn.00418030
int3