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

Disassembly:
sub esp, 0x30
push ebx
push ebp
mov ebp, dword [0x46002c]
push esi
push edi
mov edi, dword [ebp + 0x5c0]
cmp word [edi + 0x408], 1
mov edx, 2
jl case.0x42da9b.2
mov eax, dword [ebp + 0x5bc]
xor bl, bl
cmp word [eax + 0x408], 0x71
jl 0x42da2c
mov bl, 1
jmp 0x42da52
movsx ecx, word [edi + 0x40c]
push ecx
mov esi, 1
call fcn.00401cb0
lea edx, [esi + 1]
test eax, eax
je 0x42da52
mov eax, dword [ebp + 0x5bc]
inc word [eax + 0x408]
mov eax, dword [ebp + 0x5bc]
inc word [eax + 0x40c]
mov eax, dword [ebp + 0x5bc]
movsx ecx, word [eax + 0x40c]
cmp ecx, dword [eax + 0x3e0]
jl 0x42da7d
xor ecx, ecx
mov word [eax + 0x40c], cx
mov ecx, dword [ebp + 0x5c0]
movsx eax, word [ecx + 0x408]
dec eax
cmp eax, 0x63
ja case.0x42da9b.2
movzx eax, byte [eax + 0x43033c]
jmp dword [eax*4 + 0x430324]
mov ecx, dword [ebp + 0x5c4]
mov eax, 0x26
mov word [ecx + 0x408], ax
mov eax, 0xa
jmp 0x42db5e
mov eax, dword [ebp + 0x5c4]
add word [eax + 0x408], 0xfffe
mov eax, dword [ebp + 0x5c4]
cmp word [eax + 0x408], 0
jg case.0x42da9b.2
xor ecx, ecx
mov word [eax + 0x408], cx
mov eax, dword [ebp + 0x5c0]
mov ecx, 0x14
mov word [eax + 0x408], cx
jmp case.0x42da9b.2
test bl, bl
je case.0x42da9b.2
mov eax, 0x63
jmp 0x42db64
mov eax, dword [ebp + 0x5c4]
add word [eax + 0x40c], dx
mov eax, dword [ebp + 0x5c4]
movsx ecx, word [eax + 0x40c]
cmp ecx, dword [eax + 0x3e0]
jl case.0x42da9b.2
mov eax, dword [ebp + 0x5c0]
mov ecx, 0x64
mov word [eax + 0x408], cx
jmp case.0x42da9b.2
mov eax, dword [ebp + 0x5c4]
add word [eax + 0x408], 3
mov eax, dword [ebp + 0x5c4]
cmp word [eax + 0x408], 0x26
jl case.0x42da9b.2
xor eax, eax
mov ecx, dword [ebp + 0x5c0]
mov word [ecx + 0x408], ax
cmp byte [ebp + 0x8ac], 0
mov ebx, 5
je case.default.0x42db8c
mov eax, dword [ebp + 0x8b0]
dec eax
cmp eax, ebx
ja case.default.0x42db8c
jmp dword [eax*4 + 0x4303a0]
mov ecx, dword [ebp + 0x8b4]
mov eax, dword [ebp + ecx*4 + 0x47c]
cmp byte [eax + 0x428], 0
je case.default.0x42db8c
mov dword [ebp + 0x8b0], edx
mov byte [ebp + 0x8ae], 1
jmp case.default.0x42db8c
push 0x3e8
mov esi, 0xb
mov edi, ebp
call fcn.00401cb0
test eax, eax
je case.default.0x42db8c
call fcn.0043bc60
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x14
jge 0x42dbf3
cmp dword [ebp + 0x8b4], 3
jl 0x42dbfc
cmp byte [ebp + 0x8ad], 0
je 0x42dc58
inc dword [ebp + 0x8b4]
mov eax, dword [ebp + 0x8b4]
mov esi, dword [ebp + eax*4 + 0x47c]
call fcn.00404d50
push 0
mov eax, 4
push 0
mov byte [ebp + 0x8ae], 0
mov esi, ebx
push 0
cmp dword [ebp + 0x8b4], eax
jne 0x42dc42
push 0x2d
mov dword [ebp + 0x8b0], eax
call fcn.00436cb0
jmp case.default.0x42db8c
push 0x2c
mov dword [ebp + 0x8b0], 3
call fcn.00436cb0
jmp case.default.0x42db8c
add dword [ebp + 0x8b4], ebx
mov eax, dword [ebp + 0x8b4]
mov esi, dword [ebp + eax*4 + 0x47c]
call fcn.00404d50
push 0
push 0
push 0
push 0x2b
mov esi, ebx
mov byte [ebp + 0x8ae], 0
mov dword [ebp + 0x8b0], ebx
call fcn.00436cb0
jmp case.default.0x42db8c
mov eax, dword [ebp + 0x8b4]
mov ecx, dword [ebp + eax*4 + 0x47c]
cmp byte [ecx + 0x428], 0
jmp 0x42dba7
mov edx, dword [ebp + 0x8b4]
mov eax, dword [ebp + edx*4 + 0x47c]
cmp byte [eax + 0x428], 0
je case.default.0x42db8c
mov ecx, dword [ebp + 0x47c]
xor edx, edx
mov dword [ebp + 0x8b0], 6
mov byte [ebp + 0x8ae], 1
mov word [ecx + 0x408], dx
jmp case.default.0x42db8c
mov eax, dword [ebp + 0x8b4]
mov ecx, dword [ebp + eax*4 + 0x47c]
cmp byte [ecx + 0x428], 0
je case.default.0x42db8c
jmp 0x42dd17
mov eax, dword [ebp + 0x47c]
add word [eax + 0x408], dx
mov edx, dword [ebp + 0x47c]
cmp word [edx + 0x408], 0x26
jl case.default.0x42db8c
mov byte [ebp + 0x8ac], 0
mov dword [ebp + 0x8b0], 0
cmp byte [ebp + 0x89c], 0
je 0x42dd54
add dword [ebp + 0x8a0], 0xfffffffe
cmp dword [ebp + 0x8a0], 0
jg 0x42dd54
mov eax, dword [ebp + 0x8a4]
mov byte [ebp + 0x89c], 0
mov dword [ebp + 0x8a8], eax
cmp byte [ebp + 0x804], 0
je 0x42dd92
cmp dword [0x45e904], 0x7d0
jne 0x42dd7b
add dword [ebp + 0x808], 0xfffffffe
cmp dword [ebp + 0x808], 0
jg 0x42dd92
jmp 0x42dd8b
add dword [ebp + 0x808], 2
cmp dword [ebp + 0x808], 0x26
jl 0x42dd92
mov byte [ebp + 0x804], 0
mov eax, dword [ebp + 0x828]
test eax, eax
jle 0x42ddf3
sub eax, 1
je 0x42ddd0
sub eax, 0x62
je 0x42ddf3
sub eax, 1
jne 0x42ddf3
mov eax, dword [ebp + 0x82c]
lea ecx, [eax + eax*2]
mov edx, dword [ebp + ecx*4 + 0x838]
cmp byte [edx + 0x428], 0
je 0x42ddf3
mov dword [ebp + 0x828], 0
jmp 0x42ddf3
mov eax, dword [ebp + 0x82c]
lea eax, [eax + eax*2]
mov ecx, dword [ebp + eax*4 + 0x830]
cmp byte [ecx + 0x428], 0
je 0x42ddf3
mov dword [ebp + 0x828], 0x63
cmp byte [ebp + 0x88c], 0
je 0x42de2c
mov edx, dword [ebp + 0x890]
mov edi, dword [ebp + edx*4 + 0x7f4]
cmp byte [edi + 0x428], 0
jne 0x42de25
push 0x2710
mov esi, 1
call fcn.00401cb0
test eax, eax
je 0x42de2c
mov byte [ebp + 0x88c], 0
cmp byte [ebp + 0x879], 0
je 0x42de89
cmp byte [ebp + 0x87a], 0
je 0x42de61
add dword [ebp + 0x87c], 0xfffffffd
cmp dword [ebp + 0x87c], 0
jg 0x42de89
mov dword [ebp + 0x87c], 0
mov byte [ebp + 0x878], 1
jmp 0x42de82
add dword [ebp + 0x87c], 3
mov eax, 0x26
cmp dword [ebp + 0x87c], eax
jl 0x42de89
mov dword [ebp + 0x87c], eax
mov byte [ebp + 0x878], 0
mov byte [ebp + 0x879], 0
cmp byte [ebp + 0x95c], 0
je 0x42debd
push 0x3e8
mov esi, 0xa
mov edi, ebp
call fcn.00401cb0
test eax, eax
je 0x42debd
dec dword [ebp + 0x960]
cmp dword [ebp + 0x960], 0
jg 0x42debd
mov byte [ebp + 0x95c], 0
mov ebx, 0xfffffe50
lea esi, [ebp + 0x91c]
lea edi, [ebp + 0x1b0]
sub ebx, ebp
mov dword [esp + 0x10], 3
cmp byte [esi - 0x10], 0
je 0x42df49
mov ecx, dword [esi - 4]
inc dword [esi]
mov eax, dword [esi]
add ecx, ebx
add ecx, edi
mov edx, dword [ebp + ecx*4 + 0x4a8]
cmp eax, dword [edx + 0x3e0]
jl 0x42defe
mov dword [esi], 0
cmp dword [edi - 0x190], 0
jne 0x42df1d
mov dword [edi - 0x190], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [edi - 0xc8], eax
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [edi], eax
sub eax, dword [edi - 0xc8]
cmp eax, 0x3e8
jb 0x42df49
mov dword [edi - 0x190], 0
dec dword [esi - 0xc]
cmp dword [esi - 0xc], 0
jg 0x42df49
mov byte [esi - 0x10], 0
add edi, 4
add esi, 0x14
sub dword [esp + 0x10], 1
jne 0x42ded8
cmp byte [ebp + 0x948], 0
je 0x42df83
inc dword [ebp + 0x958]
mov eax, dword [ebp + 0x958]
mov ecx, dword [ebp + 0x4a4]
cmp eax, dword [ecx + 0x3e0]
jl 0x42df83
mov dword [ebp + 0x958], 0
cmp byte [ebp + 0x8f8], 0
je 0x42e00c
cmp dword [ebp + 0x1c], 0
jne 0x42dfaf
mov esi, dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [ebp + 0x1c], 1
call esi
mov dword [ebp + 0xe4], eax
call esi
jmp 0x42dfb5
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edx, eax
sub edx, dword [ebp + 0xe4]
mov dword [ebp + 0x1ac], eax
cmp edx, 0x3e8
jb 0x42dfd8
mov dword [ebp + 0x1c], 0
dec dword [ebp + 0x8fc]
inc dword [ebp + 0x908]
mov eax, dword [ebp + 0x908]
mov ecx, dword [ebp + 0x4d8]
cmp eax, dword [ecx + 0x3e0]
jl 0x42e00c
cmp dword [ebp + 0x8fc], 0
mov dword [ebp + 0x908], 0
jg 0x42e00c
mov byte [ebp + 0x8f8], 0
cmp byte [ebp + 0x8e4], 0
je 0x42e095
cmp dword [ebp + 0x18], 0
jne 0x42e038
mov esi, dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [ebp + 0x18], 1
call esi
mov dword [ebp + 0xe0], eax
call esi
jmp 0x42e03e
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edx, eax
sub edx, dword [ebp + 0xe0]
mov dword [ebp + 0x1a8], eax
cmp edx, 0x3e8
jb 0x42e071
mov dword [ebp + 0x18], 0
dec dword [ebp + 0x8e8]
cmp dword [ebp + 0x8e8], 0
jg 0x42e071
mov byte [ebp + 0x8e4], 0
inc dword [ebp + 0x8f4]
mov eax, dword [ebp + 0x8f4]
mov ecx, dword [ebp + 0x4dc]
cmp eax, dword [ecx + 0x3e0]
jl 0x42e095
mov dword [ebp + 0x8f4], 0
cmp byte [ebp + 0x8d0], 0
je 0x42e151
cmp dword [ebp + 0x14], 0
jne 0x42e0c1
mov esi, dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [ebp + 0x14], 1
call esi
mov dword [ebp + 0xdc], eax
call esi
jmp 0x42e0c7
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edx, eax
sub edx, dword [ebp + 0xdc]
mov dword [ebp + 0x1a4], eax
cmp edx, 0x3e8
jb 0x42e0ea
mov dword [ebp + 0x14], 0
dec dword [ebp + 0x8d4]
inc dword [ebp + 0x8e0]
mov eax, dword [ebp + 0x8dc]
mov ecx, dword [ebp + 0x8e0]
xor edx, edx
cmp dword [0x45e904], 0x3e8
setne dl
lea edx, [eax + edx*2]
mov edx, dword [ebp + edx*4 + 0x46c]
cmp ecx, dword [edx + 0x3e0]
jl 0x42e151
mov dword [ebp + 0x8e0], 0
test eax, eax
jne 0x42e137
mov dword [ebp + 0x8dc], 1
jmp 0x42e151
cmp dword [ebp + 0x8d4], 0
jg 0x42e151
mov dword [ebp + 0x8dc], 0
mov byte [ebp + 0x8d0], 0
cmp byte [ebp + 0x9ac], 0
je 0x42eae1
mov eax, dword [ebp + 0x9b4]
mov ebx, 6
cmp eax, ebx
ja case.0x42e18e.3
jmp dword [eax*4 + 0x4303b8]
mov eax, dword [ebp + 0x9b0]
cmp eax, 0x63
ja case.0x42e18e.3
movzx eax, byte [eax + 0x4303ec]
jmp dword [eax*4 + 0x4303d4]
mov edi, dword [ebp + 0x688]
push 0xbb8
mov esi, 3
call fcn.00401cb0
test eax, eax
je case.0x42e18e.3
mov dword [ebp + 0x9b0], 0
jmp case.0x42e18e.3
push 0
push 0
push 0
push 0x17
mov esi, 4
call fcn.00436cb0
mov dword [ebp + 0x9b8], 0
mov esi, dword [ebp + 0x688]
jmp 0x42eaa0
mov ecx, dword [ebp + 0x9b8]
mov edx, dword [ebp + ecx*4 + 0x688]
cmp dword [edx + 0x424], 0x64
jne 0x42e20f
push 0
push 0
push 0
push ebx
mov esi, 3
call fcn.00436cb0
mov eax, dword [ebp + 0x9b8]
mov ecx, dword [ebp + eax*4 + 0x688]
cmp byte [ecx + 0x428], 0
je case.0x42e18e.3
mov dword [ebp + 0x9b8], 1
mov esi, dword [ebp + 0x68c]
call fcn.00404d50
mov edx, dword [ebp + 0x9b8]
mov eax, dword [ebp + edx*4 + 0x688]
mov ecx, 5
mov word [eax + 0x408], cx
mov dword [ebp + 0x9b0], 2
jmp case.0x42e18e.3
mov edx, dword [ebp + 0x9b8]
mov edi, dword [ebp + edx*4 + 0x688]
push 0x3e8
mov esi, 1
call fcn.00401cb0
test eax, eax
je case.0x42e18e.3
mov eax, dword [ebp + 0x9b8]
mov eax, dword [ebp + eax*4 + 0x688]
dec word [eax + 0x408]
mov ecx, dword [ebp + 0x9b8]
mov edx, dword [ebp + ecx*4 + 0x688]
cmp word [edx + 0x408], 0
jg case.0x42e18e.3
call fcn.0043bc60
cdq
mov ecx, 0x1f4
idiv ecx
cmp edx, 0x78
jg 0x42e2f8
cmp byte [ebp + 0x9bc], 0
jne 0x42e2f8
mov dword [ebp + 0x9b8], 2
mov esi, dword [ebp + 0x690]
call fcn.00404d50
mov dword [ebp + 0x9b0], 0x63
jmp case.0x42e18e.3
cmp byte [ebp + 0x9bc], 0
mov dword [ebp + 0x9b0], 0
je 0x42e323
call fcn.0043bc60
cdq
mov ecx, 3
idiv ecx
add edx, 2
mov dword [ebp + 0x9b4], edx
jmp 0x42e35b
call fcn.0043bc60
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x50
jg 0x42e341
mov dword [ebp + 0x9b4], 5
jmp 0x42e35b
call fcn.0043bc60
and eax, 0x80000001
jns 0x42e352
dec eax
or eax, 0xfffffffe
inc eax
add eax, 5
mov dword [ebp + 0x9b4], eax
push 0
push 0
push 0
push 0x29
mov esi, 4
call fcn.00436cb0
jmp case.0x42e18e.3
mov edx, dword [ebp + 0x9b8]
mov eax, dword [ebp + edx*4 + 0x688]
cmp dword [eax + 0x424], 0xf
jne 0x42e39a
push 0
push 0
push 0
push 0x28
mov esi, 4
call fcn.00436cb0
mov ecx, dword [ebp + 0x9b8]
mov edx, dword [ebp + ecx*4 + 0x688]
cmp byte [edx + 0x428], 0
je case.0x42e18e.3
mov byte [ebp + 0x9ac], 0
jmp case.0x42e18e.3
mov eax, dword [ebp + 0x9b0]
sub eax, 0
je 0x42e407
sub eax, 1
jne case.0x42e18e.3
mov eax, dword [ebp + 0x9b8]
mov ecx, dword [ebp + eax*4 + 0x688]
cmp byte [ecx + 0x428], 0
je case.0x42e18e.3
mov dword [ebp + 0x9b4], 0
mov dword [ebp + 0x9b0], 0x58
jmp case.0x42e18e.3
call fcn.0043bc60
cdq
mov ecx, 7
idiv ecx
lea eax, [edx + 0x11]
mov dword [ebp + 0x9b8], eax
mov esi, dword [ebp + eax*4 + 0x688]
jmp 0x42eaa0
mov eax, dword [ebp + 0x9b0]
sub eax, 0
je 0x42e50d
sub eax, 1
je 0x42e487
sub eax, 1
jne case.0x42e18e.3
cmp dword [ebp + 0x9b8], 9
jne 0x42e6be
mov edx, dword [ebp + 0x6ac]
mov eax, dword [edx + 0x424]
cmp eax, 1
jne 0x42e471
push 0
push 0
push 0
push 0x2e
jmp 0x42e6b4
cmp eax, 0x3c
jne 0x42e6be
push 0
push 0
push 0
push 0x2f
jmp 0x42e6b4
mov edx, dword [ebp + 0x9b8]
mov eax, dword [ebp + edx*4 + 0x688]
mov eax, dword [eax + 0x424]
cmp eax, 0x6e
jne 0x42e4a9
push 0
push 0
push 0
push 0x27
jmp 0x42e4b8
cmp eax, 0xeb
jne 0x42e4c2
push 0
push 0
push 0
push 0x31
mov esi, 4
call fcn.00436cb0
mov ecx, dword [ebp + 0x9b8]
mov edx, dword [ebp + ecx*4 + 0x688]
cmp byte [edx + 0x428], 0
je case.0x42e18e.3
call fcn.0043bc60
cdq
mov ecx, 3
idiv ecx
lea eax, [edx + 7]
mov dword [ebp + 0x9b8], eax
mov esi, dword [ebp + eax*4 + 0x688]
call fcn.00404d50
mov dword [ebp + 0x9b0], 2
jmp case.0x42e18e.3
call fcn.0043bc60
and eax, 0x80000001
jns 0x42e51e
dec eax
or eax, 0xfffffffe
inc eax
add eax, 3
mov dword [ebp + 0x9b8], eax
mov esi, dword [ebp + eax*4 + 0x688]
jmp 0x42eaa0
mov eax, dword [ebp + 0x9b0]
cmp eax, 3
ja case.0x42e18e.3
jmp dword [eax*4 + 0x430450]
call fcn.0043bc60
and eax, 0x80000001
jns 0x42e55a
dec eax
or eax, 0xfffffffe
inc eax
add eax, 3
mov dword [ebp + 0x9b8], eax
call fcn.0043bc60
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x37
jmp 0x42ea77
mov eax, dword [ebp + 0x9b8]
mov ecx, dword [ebp + eax*4 + 0x688]
mov eax, dword [ecx + 0x424]
cmp eax, 0x6e
jne 0x42e59a
push 0
push 0
push 0
push 0x27
jmp 0x42e5a9
cmp eax, 0xeb
jne 0x42e5b3
push 0
push 0
push 0
push 0x31
mov esi, 4
call fcn.00436cb0
mov eax, dword [ebp + 0x9b8]
mov edx, dword [ebp + eax*4 + 0x688]
cmp byte [edx + 0x428], 0
je case.0x42e18e.3
cmp eax, 5
je 0x42e5f5
cmp eax, ebx
je 0x42e5f5
call fcn.0043bc60
and eax, 0x80000001
jns 0x42e5e7
dec eax
or eax, 0xfffffffe
inc eax
add eax, 0xb
mov dword [ebp + 0x9b8], eax
jmp 0x42e4f2
call fcn.0043bc60
and eax, 0x80000001
jns 0x42e606
dec eax
or eax, 0xfffffffe
inc eax
add eax, 0xd
mov dword [ebp + 0x9b8], eax
jmp 0x42e4f2
mov eax, dword [ebp + 0x9b8]
cmp eax, 0xb
je 0x42e624
cmp eax, 0xd
jne 0x42e646
mov ecx, dword [ebp + eax*4 + 0x688]
cmp dword [ecx + 0x424], 1
jne 0x42e646
push 0
push 0
push 0
push 0x30
mov esi, 4
call fcn.00436cb0
mov edx, dword [ebp + 0x9b8]
mov eax, dword [ebp + edx*4 + 0x688]
cmp byte [eax + 0x428], 0
je case.0x42e18e.3
mov dword [ebp + 0x9b8], 0xa
mov esi, dword [ebp + 0x6b0]
call fcn.00404d50
push 0
push 0
push 0
push 0x2a
mov esi, 4
mov dword [ebp + 0x9b0], 3
call fcn.00436cb0
jmp case.0x42e18e.3
mov ecx, dword [ebp + 0x9b8]
mov edx, dword [ebp + ecx*4 + 0x688]
cmp dword [edx + 0x424], 0x7d
jne 0x42e6be
push 0
push 0
push 0
push 0x2b
mov esi, 4
call fcn.00436cb0
mov eax, dword [ebp + 0x9b8]
mov ecx, dword [ebp + eax*4 + 0x688]
cmp byte [ecx + 0x428], 0
je case.0x42e18e.3
mov byte [ebp + 0x9ac], 0
jmp case.0x42e18e.3
mov eax, dword [ebp + 0x9b0]
sub eax, 0
je 0x42e50d
sub eax, 1
je 0x42e77c
sub eax, 1
jne case.0x42e18e.3
mov edx, dword [ebp + 0x9b8]
mov eax, dword [ebp + edx*4 + 0x688]
mov eax, dword [eax + 0x424]
cmp eax, 1
jne 0x42e72a
push 0
push 0
push 0
push 0x2e
jmp 0x42e390
cmp eax, 0x3c
jne 0x42e73c
push 0
push 0
push 0
push 0x2f
jmp 0x42e390
cmp eax, 0xaa
jne 0x42e750
push 0
push 0
push 0
push 0x25
jmp 0x42e390
cmp eax, 0x118
jne 0x42e764
push 0
push 0
push 0
push 0x2d
jmp 0x42e390
cmp eax, 0x177
jne 0x42e39a
push 0
push 0
push 0
push 0x2c
jmp 0x42e390
mov eax, dword [ebp + 0x9b8]
mov ecx, dword [ebp + eax*4 + 0x688]
mov eax, dword [ecx + 0x424]
cmp eax, 0x6e
jne 0x42e79e
push 0
push 0
push 0
push 0x27
jmp 0x42e7ad
cmp eax, 0xeb
jne 0x42e7b7
push 0
push 0
push 0
push 0x31
mov esi, 4
call fcn.00436cb0
mov edx, dword [ebp + 0x9b8]
mov eax, dword [ebp + edx*4 + 0x688]
cmp byte [eax + 0x428], 0
je case.0x42e18e.3
mov dword [ebp + 0x9b8], 0x10
mov esi, dword [ebp + 0x6c8]
call fcn.00404d50
mov dword [ebp + 0x9b0], 2
jmp case.0x42e18e.3
mov eax, dword [ebp + 0x9b0]
sub eax, 0
je 0x42e8f2
sub eax, 1
je 0x42e847
sub eax, 1
jne case.0x42e18e.3
mov eax, dword [ebp + 0x9b8]
cmp eax, 0xb
je 0x42e826
cmp eax, 0xd
jne 0x42e9a8
mov ecx, dword [ebp + eax*4 + 0x688]
cmp dword [ecx + 0x424], 1
jne 0x42e9a8
push 0
push 0
push 0
push 0x30
jmp 0x42e99e
mov ecx, dword [ebp + 0x9b8]
mov edx, dword [ebp + ecx*4 + 0x688]
mov eax, dword [edx + 0x424]
cmp eax, 0x6e
jne 0x42e869
push 0
push 0
push 0
push 0x27
jmp 0x42e878
cmp eax, 0xeb
jne 0x42e882
push 0
push 0
push 0
push 0x31
mov esi, 4
call fcn.00436cb0
mov eax, dword [ebp + 0x9b8]
mov ecx, dword [ebp + eax*4 + 0x688]
cmp byte [ecx + 0x428], 0
je case.0x42e18e.3
cmp eax, 5
je 0x42e8bb
cmp eax, ebx
je 0x42e8bb
call fcn.0043bc60
and eax, 0x80000001
jns 0x42e8b6
dec eax
or eax, 0xfffffffe
inc eax
add eax, 0xb
jmp 0x42e8cf
call fcn.0043bc60
and eax, 0x80000001
jns 0x42e8cc
dec eax
or eax, 0xfffffffe
inc eax
add eax, 0xd
mov edx, eax
mov dword [ebp + 0x9b8], eax
mov esi, dword [ebp + edx*4 + 0x688]
call fcn.00404d50
mov dword [ebp + 0x9b0], 2
jmp case.0x42e18e.3
call fcn.0043bc60
and eax, 0x80000001
jns 0x42e903
dec eax
or eax, 0xfffffffe
inc eax
add eax, 3
mov dword [ebp + 0x9b8], eax
call fcn.0043bc60
mov ecx, 0x78
jmp 0x42ea71
mov eax, dword [ebp + 0x9b0]
sub eax, 0
je 0x42ea44
sub eax, 1
je 0x42e9ce
sub eax, 1
jne case.0x42e18e.3
mov eax, dword [ebp + 0x9b8]
mov ecx, dword [ebp + eax*4 + 0x688]
mov eax, dword [ecx + 0x424]
cmp eax, 1
jne 0x42e95e
push 0
push 0
push 0
push 0x2e
jmp 0x42e99e
cmp eax, 0x3c
jne 0x42e96d
push 0
push 0
push 0
push 0x2f
jmp 0x42e99e
cmp eax, 0xaa
jne 0x42e97e
push 0
push 0
push 0
push 0x25
jmp 0x42e99e
cmp eax, 0x118
jne 0x42e98f
push 0
push 0
push 0
push 0x2d
jmp 0x42e99e
cmp eax, 0x186
jne 0x42e9a8
push 0
push 0
push 0
push 0x26
mov esi, 4
call fcn.00436cb0
mov edx, dword [ebp + 0x9b8]
mov eax, dword [ebp + edx*4 + 0x688]
cmp byte [eax + 0x428], 0
je case.0x42e18e.3
mov byte [ebp + 0x9ac], 0
jmp case.0x42e18e.3
mov ecx, dword [ebp + 0x9b8]
mov edx, dword [ebp + ecx*4 + 0x688]
mov eax, dword [edx + 0x424]
cmp eax, 0x6e
jne 0x42e9f0
push 0
push 0
push 0
push 0x27
jmp 0x42e9ff
cmp eax, 0xeb
jne 0x42ea09
push 0
push 0
push 0
push 0x31
mov esi, 4
call fcn.00436cb0
mov eax, dword [ebp + 0x9b8]
mov ecx, dword [ebp + eax*4 + 0x688]
cmp byte [ecx + 0x428], 0
je case.0x42e18e.3
mov dword [ebp + 0x9b8], 0xf
mov esi, dword [ebp + 0x6c4]
call fcn.00404d50
mov dword [ebp + 0x9b0], 2
jmp case.0x42e18e.3
call fcn.0043bc60
and eax, 0x80000001
jns 0x42ea55
dec eax
or eax, 0xfffffffe
inc eax
add eax, 3
cmp byte [ebp + 0x9bc], 0
mov dword [ebp + 0x9b8], eax
je 0x42ea93
call fcn.0043bc60
mov ecx, 0x64
cdq
idiv ecx
cmp edx, 5
jg 0x42ea93
call fcn.0043bc60
and eax, 0x80000001
jns 0x42ea8a
dec eax
or eax, 0xfffffffe
inc eax
add eax, 5
mov dword [ebp + 0x9b8], eax
mov edx, dword [ebp + 0x9b8]
mov esi, dword [ebp + edx*4 + 0x688]
call fcn.00404d50
mov dword [ebp + 0x9b0], 1
cmp byte [ebp + 0x9ac], 0
jne 0x42eae1
mov eax, dword [0x46002c]
push 0
call fcn.0042cdd0
mov eax, dword [0x460010]
mov dword [eax + 0x374], ebx
cmp dword [eax + 0x370], ebx
jne 0x42eae1
mov dword [eax + 0x370], 0
cmp byte [ebp + 0x994], 0
je case.0x42eb04.2
mov eax, dword [ebp + 0x998]
cmp eax, 0x5a
ja case.0x42eb04.2
movzx eax, byte [eax + 0x430474]
jmp dword [eax*4 + 0x430460]
mov eax, dword [ebp + 0x9a4]
lea ecx, [eax + eax*2]
add ecx, dword [ebp + 0x99c]
mov edi, 1
mov eax, dword [ebp + ecx*4 + 0x7b4]
add word [eax + 0x40c], di
mov eax, dword [ebp + 0x9a0]
lea edx, [eax + eax*2]
add edx, dword [ebp + 0x99c]
mov eax, dword [ebp + edx*4 + 0x748]
add word [eax + 0x40c], di
mov eax, dword [ebp + 0x9a0]
lea eax, [eax + eax*2]
add eax, dword [ebp + 0x99c]
mov eax, dword [ebp + eax*4 + 0x748]
movsx ecx, word [eax + 0x40c]
cmp ecx, dword [eax + 0x3e0]
jl case.0x42eb04.2
cmp dword [ebp + 0x998], 0
jne 0x42eb98
push 0
push 0
push 0
push 0x13
lea esi, [edi + 3]
mov dword [ebp + 0x998], 0xa
call fcn.00436cb0
jmp 0x42eba2
mov dword [ebp + 0x998], 5
mov eax, dword [ebp + 0x9a0]
lea edx, [eax + eax*2]
mov dword [ebp + 0x99c], edi
mov eax, dword [ebp + edx*4 + 0x74c]
call fcn.00404cf0
mov eax, dword [ebp + 0x9a4]
lea eax, [eax + eax*2]
add eax, dword [ebp + 0x99c]
mov eax, dword [ebp + eax*4 + 0x7b4]
call fcn.00404cf0
mov eax, dword [ebp + 0x9a8]
lea ecx, [eax + eax*2]
add ecx, dword [ebp + 0x99c]
mov eax, dword [ebp + ecx*4 + 0x76c]
call fcn.00404cf0
jmp case.0x42eb04.2
mov eax, dword [ebp + 0x9a4]
lea edx, [eax + eax*2]
add edx, dword [ebp + 0x99c]
mov ebx, 2
mov eax, dword [ebp + edx*4 + 0x7b4]
lea edi, [ebx - 1]
cmp word [eax + 0x40c], bx
jne 0x42ec46
mov ecx, dword [ebp + 0x9a8]
xor eax, eax
cmp ecx, edi
jle 0x42ec32
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
push 0
push 0
push 0
add eax, 0x14
push eax
mov esi, 4
call fcn.00436cb0
mov eax, dword [ebp + 0x9a0]
lea ecx, [eax + eax*2]
add ecx, dword [ebp + 0x99c]
mov eax, dword [ebp + ecx*4 + 0x748]
add word [eax + 0x40c], di
mov eax, dword [ebp + 0x9a4]
lea edx, [eax + eax*2]
add edx, dword [ebp + 0x99c]
mov eax, dword [ebp + edx*4 + 0x7b4]
add word [eax + 0x40c], di
mov eax, dword [ebp + 0x9a8]
lea eax, [eax + eax*2]
add eax, dword [ebp + 0x99c]
mov eax, dword [ebp + eax*4 + 0x76c]
add word [eax + 0x40c], di
mov eax, dword [ebp + 0x9a0]
mov edx, dword [ebp + 0x99c]
lea ecx, [eax + eax*2]
add edx, ecx
mov eax, dword [ebp + edx*4 + 0x748]
movsx edx, word [eax + 0x40c]
cmp edx, dword [eax + 0x3e0]
jl case.0x42eb04.2
mov dword [ebp + 0x998], 0x14
mov dword [ebp + 0x99c], ebx
mov eax, dword [ebp + ecx*4 + 0x750]
call fcn.00404cf0
mov eax, dword [ebp + 0x9a4]
lea eax, [eax + eax*2]
add eax, dword [ebp + 0x99c]
mov eax, dword [ebp + eax*4 + 0x7b4]
call fcn.00404cf0
jmp case.0x42eb04.2
mov eax, dword [ebp + 0x9a4]
lea ecx, [eax + eax*2]
add ecx, dword [ebp + 0x99c]
mov edx, 1
mov eax, dword [ebp + ecx*4 + 0x7b4]
add word [eax + 0x40c], dx
mov eax, dword [ebp + 0x9a4]
lea eax, [eax + eax*2]
add eax, dword [ebp + 0x99c]
lea ecx, [ebp + eax*4 + 0x7b4]
mov eax, dword [ecx]
movsx esi, word [eax + 0x40c]
cmp esi, dword [eax + 0x3e0]
jl 0x42ed58
mov ecx, eax
xor eax, eax
mov word [ecx + 0x40c], ax
mov eax, dword [ebp + 0x9a0]
lea ecx, [eax + eax*2]
add ecx, dword [ebp + 0x99c]
mov eax, dword [ebp + ecx*4 + 0x748]
add word [eax + 0x40c], dx
mov eax, dword [ebp + 0x9a0]
lea eax, [eax + eax*2]
add eax, dword [ebp + 0x99c]
lea ecx, [ebp + eax*4 + 0x748]
mov eax, dword [ecx]
movsx esi, word [eax + 0x40c]
cmp esi, dword [eax + 0x3e0]
jl 0x42eda7
mov ecx, eax
xor eax, eax
mov word [ecx + 0x40c], ax
mov eax, dword [ebp + 0x9a8]
lea ecx, [eax + eax*2]
add ecx, dword [ebp + 0x99c]
mov eax, dword [ebp + ecx*4 + 0x76c]
add word [eax + 0x40c], dx
mov eax, dword [ebp + 0x9a8]
lea edx, [eax + eax*2]
add edx, dword [ebp + 0x99c]
mov eax, dword [ebp + edx*4 + 0x76c]
lea ecx, [ebp + edx*4 + 0x76c]
movsx edx, word [eax + 0x40c]
cmp edx, dword [eax + 0x3e0]
jl case.0x42eb04.2
xor ecx, ecx
mov word [eax + 0x40c], cx
jmp case.0x42eb04.2
mov eax, dword [ebp + 0x9a4]
add eax, 0xa5
lea edx, [eax + eax*2]
mov eax, dword [ebp + edx*4]
mov edx, 1
add word [eax + 0x40c], dx
mov eax, dword [ebp + 0x9a4]
add eax, 0xa5
lea eax, [eax + eax*2]
lea ecx, [ebp + eax*4]
mov eax, dword [ecx]
movsx esi, word [eax + 0x40c]
cmp esi, dword [eax + 0x3e0]
jl 0x42ee4e
mov ecx, eax
xor eax, eax
mov word [ecx + 0x40c], ax
mov eax, dword [ebp + 0x9a0]
add eax, 0x9c
lea ecx, [eax + eax*2]
mov eax, dword [ebp + ecx*4]
add word [eax + 0x40c], dx
mov eax, dword [ebp + 0x9a0]
add eax, 0x9c
lea eax, [eax + eax*2]
lea ecx, [ebp + eax*4]
mov eax, dword [ecx]
movsx esi, word [eax + 0x40c]
cmp esi, dword [eax + 0x3e0]
jl 0x42ee95
mov ecx, eax
xor eax, eax
mov word [ecx + 0x40c], ax
mov eax, dword [ebp + 0x9a8]
add eax, 0x9f
lea ecx, [eax + eax*2]
mov eax, dword [ebp + ecx*4]
add word [eax + 0x40c], dx
mov eax, dword [ebp + 0x9a8]
add eax, 0x9f
lea edx, [eax + eax*2]
mov eax, dword [ebp + edx*4]
lea ecx, [ebp + edx*4]
movsx edx, word [eax + 0x40c]
cmp edx, dword [eax + 0x3e0]
jl 0x42eedc
xor ecx, ecx
mov word [eax + 0x40c], cx
add dword [ebp + 0x99c], 3
cmp dword [ebp + 0x99c], 0x26
jl case.0x42eb04.2
mov byte [ebp + 0x994], 0
cmp byte [ebp + 0x8bc], 0
mov ebx, 0x46
je case.default.0x42f050
mov eax, dword [ebp + 0x8c0]
cmp eax, 7
ja case.default.0x42f050
jmp dword [eax*4 + 0x4304d0]
mov edi, 1
add dword [ebp + 0x8cc], edi
cmp dword [ebp + 0x8cc], 0x4b
jne 0x42ef3f
push 0
push 0
push 0
push 0xd
lea esi, [edi + 3]
call fcn.00436cb0
mov eax, dword [ebp + 0x8c8]
mov edx, dword [ebp + eax*4 + 0x440]
mov ecx, dword [ebp + 0x8cc]
cmp ecx, dword [edx + 0x3e0]
jl case.default.0x42f050
add dword [ebp + 0x8c0], edi
inc eax
cmp dword [ebp + 0x8c0], 5
mov dword [ebp + 0x8cc], 0
mov dword [ebp + 0x8c8], eax
jge 0x42ef8a
mov byte [ebp + 0x8bc], 0
jmp case.default.0x42f050
mov byte [ebp + 0x8bd], 1
mov esi, dword [ebp + eax*4 + 0x440]
call fcn.00404d50
jmp case.default.0x42f050
inc dword [ebp + 0x8cc]
mov edx, dword [ebp + 0x8c8]
mov eax, dword [ebp + 0x8cc]
mov ecx, dword [ebp + edx*4 + 0x440]
cmp eax, dword [ecx + 0x3e0]
jl case.default.0x42f050
mov dword [ebp + 0x8cc], 0
jmp case.default.0x42f050
add dword [ebp + 0x8c4], 0xfffffffe
cmp dword [ebp + 0x8c4], 0
jg case.default.0x42f050
mov eax, dword [ebp + 0x8c8]
cmp eax, 0xa
jge 0x42effc
inc eax
mov dword [ebp + 0x8c8], eax
mov dword [ebp + 0x8c0], 5
jmp case.default.0x42f050
add dword [ebp + 0x8cc], 0xfffffffd
xor ecx, ecx
cmp dword [ebp + 0x8cc], ecx
jg case.default.0x42f050
add dword [ebp + 0x8c8], 0xffffffff
mov eax, dword [ebp + 0x8c8]
jns 0x42f04b
mov byte [ebp + 0x8bd], cl
mov dword [ebp + 0x8cc], ecx
mov dword [ebp + 0x8c8], ecx
mov dword [ebp + 0x8c0], ecx
mov byte [ebp + 0x8bc], cl
jmp case.default.0x42f050
cmp eax, 4
ja case.default.0x42f050
jmp dword [eax*4 + 0x4304f0]
mov dword [ebp + 0x8cc], 0x3f
jmp case.default.0x42f050
mov dword [ebp + 0x8cc], ebx
jmp case.default.0x42f050
mov dword [ebp + 0x8cc], 0x43
jmp case.default.0x42f050
mov dword [ebp + 0x8cc], 0x36
jmp case.default.0x42f050
mov dword [ebp + 0x8cc], 0x3c
cmp byte [ebp + 0x334], 0
mov edi, 0x51
je case.0x42f79e.305
mov eax, dword [ebp + 0x33c]
cmp eax, 4
ja case.0x42f79e.305
mov ecx, dword [ebp + 0x338]
cmp ecx, 0x12c
jg 0x42f788
je 0x42f756
mov esi, 0xd1
cmp ecx, esi
ja case.0x42f79e.305
movzx edx, byte [ecx + 0x430538]
jmp dword [edx*4 + 0x430504]
lea ecx, [eax*8]
sub ecx, eax
add ecx, dword [ebp + 0x340]
mov edx, dword [ebp + ecx*4 + 0x34c]
cmp dword [edx + 0x424], 0xa
jne 0x42f112
push 0
push 0
push 0
push 5
mov esi, 4
call fcn.00436cb0
mov ecx, dword [ebp + 0x33c]
lea eax, [ecx*8]
sub eax, ecx
mov ecx, dword [ebp + 0x340]
add ecx, eax
mov edx, dword [ebp + ecx*4 + 0x34c]
cmp byte [edx + 0x428], 0
je case.0x42f79e.305
mov ecx, dword [ebp + 0x338]
cmp ecx, 5
jne 0x42f154
mov dword [ebp + 0x338], 7
jmp 0x42f178
cmp byte [ebp + 0x335], 0
jne 0x42f16e
cmp ecx, 3
je 0x42f16e
mov dword [ebp + 0x338], 1
jmp 0x42f178
mov dword [ebp + 0x338], 0xa
mov byte [ebp + 0x348], 1
mov dword [ebp + 0x340], 1
mov esi, dword [ebp + eax*4 + 0x350]
call fcn.00404d50
jmp case.0x42f79e.305
lea edx, [eax*8]
sub edx, eax
add edx, dword [ebp + 0x340]
mov eax, dword [ebp + edx*4 + 0x34c]
cmp byte [eax + 0x428], 0
je case.0x42f79e.305
lea eax, [ecx + 1]
cmp eax, 8
mov dword [ebp + 0x338], eax
jl case.0x42f79e.305
mov dword [ebp + 0x338], 1
jmp case.0x42f79e.305
mov edx, dword [ebp + 0x340]
lea ecx, [eax*8]
sub ecx, eax
add edx, ecx
mov eax, dword [ebp + edx*4 + 0x34c]
cmp byte [eax + 0x428], 0
je case.0x42f79e.305
mov dword [ebp + 0x340], 1
mov esi, dword [ebp + ecx*4 + 0x350]
call fcn.00404d50
mov dword [ebp + 0x338], 0x15
jmp case.0x42f79e.305
push 0x3e8
mov esi, 3
mov edi, ebp
call fcn.00401cb0
test eax, eax
je case.0x42f79e.305
mov ecx, dword [0x46000c]
cmp dword [ecx + 0x38c], 0xc350
jge 0x42f276
call fcn.0043bc60
cdq
mov ecx, 0x64
idiv ecx
cmp edx, ebx
jge 0x42f270
mov byte [ebp + 0x348], 1
jmp case.0x42f79e.305
mov ecx, dword [0x46000c]
mov dword [ebp + 0x338], 0x16
mov eax, dword [ecx + 0x38c]
cmp eax, 0x4e20
jge 0x42f2b9
cmp dword [ecx + 0x434], 0x4e20
jge 0x42f2b9
push 0
push 2
call fcn.0043bc60
and eax, 0x80000001
jns 0x42f2ae
dec eax
or eax, 0xfffffffe
inc eax
push eax
call fcn.0042cae0
jmp case.0x42f79e.305
cmp eax, 0x7530
jg 0x42f2dc
cmp dword [ecx + 0x434], 0x7530
jg 0x42f2dc
push 0
push 5
push 2
call fcn.0042cae0
jmp case.0x42f79e.305
cmp eax, 0x11170
jg 0x42f2ff
cmp dword [ecx + 0x434], 0x11170
jg 0x42f2ff
push 0
push 7
push 3
call fcn.0042cae0
jmp case.0x42f79e.305
cmp eax, 0x186a0
jg 0x42f322
cmp dword [ecx + 0x434], 0x186a0
jg 0x42f322
push 0
push 0xa
push 4
call fcn.0042cae0
jmp case.0x42f79e.305
push 0
push 0xa
push 5
call fcn.0042cae0
jmp case.0x42f79e.305
cmp byte [ebp + 0x860], 0
jne case.0x42f79e.305
push 0x1f4
mov esi, 3
mov edi, ebp
call fcn.00401cb0
test eax, eax
je case.0x42f79e.305
mov eax, dword [0x46000c]
mov ecx, dword [eax + 0x38c]
cmp ecx, 0xc350
mov byte [esp + 0x10], 0
jl 0x42f38c
mov byte [esp + 0x10], 1
mov byte [eax + 0x431], 1
mov dword [eax + 0x434], ecx
mov dword [eax + 0x38c], 0
mov edx, dword [esp + 0x10]
push edx
mov eax, ebp
call fcn.0042cdd0
mov byte [ebp + 0x348], 1
jmp case.0x42f79e.305
push 0x32
mov esi, 3
mov edi, ebp
call fcn.00401cb0
test eax, eax
je case.0x42f79e.305
mov eax, dword [ebp + 0x33c]
lea ecx, [eax*8]
sub ecx, eax
mov byte [ebp + 0x348], 0
mov dword [ebp + 0x338], 0x64
mov dword [ebp + 0x340], 2
mov esi, dword [ebp + ecx*4 + 0x354]
call fcn.00404d50
push 0
push 0
push 0
push 4
mov esi, 4
call fcn.00436cb0
jmp case.0x42f79e.305
lea edx, [eax*8]
sub edx, eax
add edx, dword [ebp + 0x340]
mov eax, dword [ebp + edx*4 + 0x34c]
cmp byte [eax + 0x428], 0
je case.0x42f79e.305
mov byte [ebp + 0x348], 0
jmp 0x42f968
lea ecx, [eax*8]
sub ecx, eax
add ecx, dword [ebp + 0x340]
mov edx, dword [ebp + ecx*4 + 0x34c]
cmp byte [edx + 0x428], 0
je case.0x42f79e.305
mov dword [ebp + 0x338], 0xc9
call fcn.0043bc60
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x50
jl 0x42f4da
mov edx, dword [0x46000c]
xor ecx, ecx
cmp dword [edx + 0x434], ecx
jle 0x42f4da
mov eax, dword [0x460010]
mov dword [eax + 0x3a0], ecx
mov dword [eax + 0x3ac], ecx
mov dword [eax + 0x3b0], ecx
mov byte [eax + 0x3b4], cl
mov eax, dword [eax + 0x3cc]
cmp dword [eax + 4], edi
jle 0x42f4c8
mov edx, dword [eax + 0xc]
cmp dword [edx + 0x144], ecx
je 0x42f4c8
mov eax, edx
mov eax, dword [eax + 0x144]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x48]
push eax
call edx
mov dword [ebp + 0x338], esi
mov dword [ebp + 0x340], 6
jmp 0x42f4e4
mov dword [ebp + 0x340], 4
mov eax, dword [ebp + 0x33c]
lea ecx, [eax*8]
sub ecx, eax
add ecx, dword [ebp + 0x340]
mov esi, dword [ebp + ecx*4 + 0x34c]
call fcn.00404d50
jmp case.0x42f79e.305
lea edx, [eax*8]
sub edx, eax
add edx, dword [ebp + 0x340]
mov eax, dword [ebp + edx*4 + 0x34c]
cmp byte [eax + 0x428], 0
je case.0x42f79e.305
mov eax, dword [0x460010]
xor ecx, ecx
mov dword [eax + 0x3a0], ecx
mov dword [eax + 0x3ac], ecx
mov dword [eax + 0x3b0], ecx
mov byte [eax + 0x3b4], cl
mov eax, dword [eax + 0x3cc]
cmp dword [eax + 4], edi
jle 0x42f574
mov edx, dword [eax + 0xc]
cmp dword [edx + 0x144], ecx
je 0x42f574
mov eax, edx
mov eax, dword [eax + 0x144]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x48]
push eax
call edx
xor ecx, ecx
mov eax, dword [0x46000c]
cmp dword [eax + 0x434], ecx
jg 0x42f4c8
mov dword [ebp + 0x338], 0xcd
mov dword [ebp + 0x340], 5
jmp 0x42f4e4
lea edx, [eax*8]
sub edx, eax
add edx, dword [ebp + 0x340]
mov eax, dword [ebp + edx*4 + 0x34c]
cmp byte [eax + 0x428], 0
je case.0x42f79e.305
mov dword [ebp + 0x338], 0xce
mov dword [ebp + 0x340], 1
jmp case.0x42f79e.305
push 0xc8
mov esi, 3
mov edi, ebp
call fcn.00401cb0
test eax, eax
je case.0x42f79e.305
mov eax, dword [0x46000c]
mov byte [eax + 0x431], 0
mov dword [eax + 0x434], 0
mov eax, dword [ebp + 0x33c]
lea ecx, [eax*8]
sub ecx, eax
mov byte [ebp + 0x348], 1
mov dword [ebp + 0x338], 0x64
mov dword [ebp + 0x340], 2
mov esi, dword [ebp + ecx*4 + 0x354]
call fcn.00404d50
push 0
push 0
push 0
push 4
mov esi, 4
call fcn.00436cb0
jmp case.0x42f79e.305
lea edx, [eax*8]
sub edx, eax
add edx, dword [ebp + 0x340]
mov eax, dword [ebp + edx*4 + 0x34c]
cmp dword [eax + 0x424], ebx
jne 0x42f686
push 0
push 0
push 0
push 0x52
mov esi, 5
call fcn.00436cb0
mov eax, dword [ebp + 0x33c]
lea ecx, [eax*8]
sub ecx, eax
add ecx, dword [ebp + 0x340]
mov edx, dword [ebp + ecx*4 + 0x34c]
cmp byte [edx + 0x428], 0
je case.0x42f79e.305
mov eax, dword [0x46000c]
mov ecx, dword [eax + 0x434]
mov eax, dword [0x46001c]
mov esi, dword [eax + 0x450]
lea ebx, [eax + 0x64c]
mov edi, eax
mov byte [eax + 0x638], 1
mov dword [eax + 0x63c], 1
mov dword [eax + 0x640], ecx
mov dword [eax + 0x644], 0
mov dword [ebx], 0
call fcn.00404d50
mov eax, dword [0x46002c]
mov byte [eax + 0x824], 1
mov byte [eax + 0x825], 0
mov dword [eax + 0x82c], 0
mov dword [eax + 0x828], 0x63
mov dword [ebx], 0
mov esi, dword [edi + 0x454]
call fcn.00404d50
mov eax, dword [0x46000c]
mov dword [edi + 0x648], 0x26
mov byte [eax + 0x431], 0
mov dword [eax + 0x434], 0
jmp 0x42f968
lea ecx, [eax*8]
sub ecx, eax
add ecx, dword [ebp + 0x340]
mov edx, dword [ebp + ecx*4 + 0x34c]
cmp byte [edx + 0x428], 0
je case.0x42f79e.305
mov dword [ebp + 0x338], 0x12d
jmp case.0x42f79e.305
sub ecx, 0x12d
cmp ecx, 0x1e
ja case.0x42f79e.305
movzx eax, byte [ecx + 0x430630]
jmp dword [eax*4 + 0x43060c]
mov ecx, dword [ebp + 0x3bc]
cmp byte [ecx + 0x428], 0
je case.0x42f79e.305
mov dword [ebp + 0x338], 0x14b
jmp case.0x42f79e.305
mov edx, dword [ebp + 0x3c0]
cmp byte [edx + 0x428], 0
je case.0x42f79e.305
mov dword [ebp + 0x338], 0x12c
mov dword [ebp + 0x33c], 4
mov dword [ebp + 0x340], 2
mov esi, dword [ebp + 0x3c4]
call fcn.00404d50
jmp case.0x42f79e.305
push 0x7d0
mov esi, 2
mov edi, ebp
call fcn.00401cb0
test eax, eax
je case.0x42f79e.305
mov edx, 0x28a
call fcn.00432380
mov eax, dword [0x46000c]
mov eax, dword [eax + 0x474]
call fcn.00410880
mov edx, dword [0x46000c]
xor ecx, ecx
cmp dword [edx + 0x474], ecx
sete cl
lea ecx, [ecx*8 + 0x12e]
mov dword [ebp + 0x338], ecx
jmp case.0x42f79e.305
mov eax, dword [0x460020]
cmp byte [eax + 0xc8c], 0
jne case.0x42f79e.305
push 0x7d0
mov esi, 2
mov edi, ebp
call fcn.00401cb0
test eax, eax
je case.0x42f79e.305
mov edx, dword [0x45e904]
mov ecx, dword [0x46000c]
mov eax, 0x10624dd3
imul edx
mov eax, edx
sar eax, 6
mov edx, eax
mov dword [ebp + 0x338], 0x12f
mov esi, dword [ecx + 0x474]
shr edx, 0x1f
add edx, eax
imul edx, dword [esi*8 + 0x45edc8]
imul edx, dword [ecx + 0x3c4]
mov eax, dword [0x460034]
call fcn.00432800
mov edx, 0x3b6
call fcn.00432380
jmp case.0x42f79e.305
mov ecx, dword [0x460034]
cmp dword [ecx + 0x504], 0
jne case.0x42f79e.305
mov dword [ebp + 0x338], 0x130
jmp case.0x42f79e.305
push 0x1388
mov esi, 2
mov edi, ebp
call fcn.00401cb0
test eax, eax
je case.0x42f79e.305
mov edx, dword [0x460034]
mov ecx, dword [0x46000c]
mov edx, dword [edx + 0x3b0]
mov ebx, dword [ecx + 0x474]
push 1
lea eax, [esi - 1]
call fcn.00432710
jmp 0x42f968
mov edx, dword [0x460020]
cmp byte [edx + 0xc8c], 0
jne case.0x42f79e.305
mov dword [ebp + 0x338], 0x137
jmp case.0x42f79e.305
push 0x3e8
mov esi, 2
mov edi, ebp
call fcn.00401cb0
test eax, eax
je case.0x42f79e.305
mov byte [ebp + 0x334], 0
cmp byte [ebp + 0x980], 0
je 0x42fa38
mov eax, dword [ebp + 0x990]
mov esi, dword [ebp + 0x988]
lea esi, [eax + esi*2 + 0x1ba]
lea eax, [eax + eax*4]
xor dl, dl
mov dword [esp + 0x18], 0x3c
mov dword [esp + 0x1c], 0x36
mov dword [esp + 0x20], 0x2f
mov dword [esp + 0x24], 0x28
mov dword [esp + 0x28], 0x1f
mov dword [esp + 0x2c], 0x1e
mov dword [esp + 0x30], 0x24
mov dword [esp + 0x34], 0x2c
mov dword [esp + 0x38], 0x34
mov dword [esp + 0x3c], 0x3d
xor ecx, ecx
lea esi, [ebp + esi*4]
lea eax, [esp + eax*4 + 0x18]
mov edi, edi
mov edi, dword [esi]
movsx edi, word [edi + 0x40c]
cmp edi, dword [eax]
jne 0x42fa05
mov dl, 1
mov dword [ebp + 0x984], ecx
inc ecx
add eax, 4
cmp ecx, 5
jl 0x42f9f0
test dl, dl
jne 0x42fa1c
mov dword [ebp + 0x984], 0xffffffff
mov eax, dword [esi]
cmp byte [eax + 0x428], 0
je 0x42fa38
mov byte [ebp + 0x980], 0
mov dword [ebp + 0x984], 0xffffffff
cmp byte [ebp + 0x970], 0
je 0x430038
xor bl, bl
cmp dword [ebp + 0x974], 0x64
mov dword [ebp + 0x984], 0xffffffff
jge 0x42fa6e
call fcn.0043bc60
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0xa
jge 0x42fa6e
mov bl, 1
xor esi, esi
mov eax, 0x198
lea edi, [esi + 1]
jmp 0x42fa80
mov edx, dword [ebp + 0x990]
add edx, eax
lea ecx, [ebp + edx*4]
mov edx, dword [ecx]
cmp word [edx + 0x408], di
jl 0x42fb6e
mov ecx, edx
add word [ecx + 0x40c], di
mov ecx, dword [ebp + 0x990]
add ecx, eax
mov ecx, dword [ebp + ecx*4]
cmp word [ecx + 0x40c], 3
jne 0x42faf4
test bl, bl
je 0x42fae2
mov edx, 2
mov word [ecx + 0x408], dx
mov ecx, dword [ebp + 0x990]
add ecx, eax
mov edx, dword [ebp + ecx*4]
mov dword [edx + 0x424], 0
jmp 0x42faee
mov edx, 3
mov word [ecx + 0x408], dx
mov dword [ebp + 0x984], esi
mov ecx, dword [ebp + 0x990]
add ecx, eax
mov edx, dword [ebp + ecx*4]
cmp word [edx + 0x408], 2
lea ecx, [ebp + ecx*4]
jne 0x42fb18
mov ecx, edx
add dword [ecx + 0x424], edi
jmp 0x42fb2c
cmp word [edx + 0x40c], 4
jle 0x42fb2c
mov ecx, edx
add word [ecx + 0x40c], 5
mov edx, dword [ebp + 0x990]
add edx, eax
mov ecx, dword [ebp + edx*4]
movsx edi, word [ecx + 0x40c]
cmp edi, dword [ecx + 0x3e0]
lea edx, [ebp + edx*4]
mov edi, 1
jl 0x42fb6e
xor edx, edx
mov word [ecx + 0x408], dx
mov ecx, dword [ebp + 0x990]
add ecx, eax
mov edx, dword [ebp + ecx*4]
xor ecx, ecx
mov word [edx + 0x40e], cx
add eax, 2
add esi, edi
cmp eax, 0x1a2
jl 0x42fa80
mov ecx, dword [ebp + 0x988]
mov esi, dword [ebp + 0x978]
add dword [ebp + 0x97c], edi
mov edx, dword [ebp + 0x97c]
lea ecx, [ecx + ecx*2]
lea ecx, [esi + ecx*2]
mov esi, dword [ebp + 0x990]
lea ecx, [esi + ecx*2]
mov ecx, dword [ebp + ecx*4 + 0x5cc]
xor al, al
xor ebx, ebx
cmp edx, dword [ecx + 0x3e0]
jl 0x42fbc0
mov dword [ebp + 0x97c], ebx
mov al, 1
mov ecx, dword [ebp + 0x974]
cmp ecx, 0xbc
ja case.0x42fbd9.1
movzx edx, byte [ecx + 0x430678]
jmp dword [edx*4 + 0x430650]
test al, al
je case.0x42fbd9.1
mov dword [ebp + 0x978], edi
mov dword [ebp + 0x974], 0xbc
jmp case.0x42fbd9.1
cmp dword [ebp + 0x984], ebx
jl 0x42fd3d
mov esi, dword [0x460010]
mov eax, dword [esi + 0x3c8]
add esi, 0x3c8
mov ebx, 0x22
cmp dword [eax + 4], ebx
jle 0x42fc53
mov ecx, dword [eax + 0xc]
cmp dword [ecx + 0x88], 0
je 0x42fc53
mov edx, ecx
mov eax, dword [edx + 0x88]
mov ecx, dword [eax]
lea edx, [esp + 0x10]
push edx
push eax
mov eax, dword [ecx + 0x24]
call eax
mov eax, dword [esp + 0x10]
and eax, 1
jne 0x42fd2b
mov eax, dword [esi]
cmp dword [eax + 4], ebx
jle 0x42fc88
mov ecx, dword [eax + 0xc]
cmp dword [ecx + 0x88], 0
je 0x42fc88
mov edx, ecx
mov eax, dword [edx + 0x88]
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push eax
mov eax, dword [ecx + 0x24]
call eax
mov eax, dword [esp + 0x14]
and eax, 4
jne 0x42fd2b
mov esi, dword [0x460010]
mov eax, dword [esi + 0x390]
mov ecx, dword [esi + 0x3c8]
mov byte [esi + 0x39c], 1
mov edi, esi
add esi, 0x3c8
cmp dword [ecx + 4], ebx
jle 0x42fcdf
mov edx, dword [ecx + 0xc]
cmp dword [edx + 0x88], 0
je 0x42fcdf
test eax, eax
jl 0x42fcc2
xor eax, eax
jmp 0x42fcce
cmp eax, 0xffffd8f0
jg 0x42fcce
mov eax, 0xffffd8f0
mov ecx, edx
mov ecx, dword [ecx + 0x88]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x3c]
push ecx
call eax
mov eax, dword [edi + 0x38c]
test eax, eax
jle 0x42fd06
mov ecx, dword [esi]
cmp eax, dword [ecx + 4]
jge 0x42fd06
mov edx, dword [ecx + 0xc]
cmp dword [edx + eax*4], 0
je 0x42fd06
mov ecx, edx
mov eax, dword [ecx + eax*4]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 0x48]
call eax
xor eax, eax
mov dword [edi + 0x38c], eax
mov dword [edi + 0x398], eax
mov dword [edi + 0x394], eax
cmp byte [edi + 0x324], al
jne 0x42fd2b
mov edi, dword [esi]
mov eax, ebx
call fcn.00401a00
mov eax, dword [ebp + 0x984]
call fcn.00410750
mov edi, 1
xor ebx, ebx
cmp dword [ebp + 0x97c], 0xc
jne 0x42fd92
mov eax, dword [ebp + 0x974]
cdq
mov ecx, 0x6e
idiv ecx
mov eax, dword [ebp + 0x990]
lea ecx, [eax + edx*2 + 0x198]
mov eax, dword [ebp + ecx*4]
call fcn.00404cf0
mov eax, dword [ebp + 0x974]
cdq
mov ecx, 0x6e
idiv ecx
mov eax, dword [ebp + 0x990]
lea ecx, [eax + edx*2 + 0x198]
mov edx, dword [ebp + ecx*4]
mov eax, edi
mov word [edx + 0x408], ax
cmp dword [ebp + 0x97c], 0x11
jle case.0x42fbd9.1
mov dword [ebp + 0x97c], 0xb
jmp case.0x42fbd9.1
test al, al
je case.0x42fbd9.1
mov dword [ebp + 0x978], edi
mov dword [ebp + 0x974], 0xa
call fcn.0043bc60
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x50
jge case.0x42fbd9.1
mov dword [ebp + 0x974], 0xb
jmp case.0x42fbd9.1
cmp dword [ebp + 0x34], ebx
jne 0x42fe05
mov esi, dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [ebp + 0x34], edi
call esi
mov dword [ebp + 0xfc], eax
call esi
jmp 0x42fe0b
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edx, eax
sub edx, dword [ebp + 0xfc]
mov dword [ebp + 0x1c4], eax
cmp edx, 0x3e8
jb 0x42fe26
mov dword [ebp + 0x34], ebx
jmp 0x42fe33
cmp dword [ebp + 0x974], 0xb
jne case.0x42fbd9.1
mov dword [ebp + 0x97c], ebx
mov dword [ebp + 0x978], 3
mov dword [ebp + 0x974], 0x14
jmp case.0x42fbd9.1
test al, al
je case.0x42fbd9.1
mov dword [ebp + 0x978], edi
call fcn.0043bc60
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x1e
jg case.0x42fbd9.1
mov dword [ebp + 0x978], 2
jmp case.0x42fbd9.1
cmp dword [ebp + 0x97c], 0xc
jne 0x42ff8e
cmp ecx, 0x14
jne 0x42ff3b
mov esi, dword [0x460010]
mov eax, dword [esi + 0x390]
mov ecx, dword [esi + 0x3c8]
mov byte [esi + 0x39c], 1
mov edi, esi
add esi, 0x3c8
xor ebx, ebx
cmp dword [ecx + 4], 7
jle 0x42feee
mov edx, dword [ecx + 0xc]
cmp dword [edx + 0x1c], ebx
je 0x42feee
cmp eax, ebx
jl 0x42fed4
xor eax, eax
jmp 0x42fee0
cmp eax, 0xffffd8f0
jg 0x42fee0
mov eax, 0xffffd8f0
mov ecx, edx
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x3c]
push ecx
call eax
mov eax, dword [edi + 0x38c]
cmp eax, ebx
jle 0x42ff14
mov ecx, dword [esi]
cmp eax, dword [ecx + 4]
jge 0x42ff14
mov edx, dword [ecx + 0xc]
cmp dword [edx + eax*4], ebx
je 0x42ff14
mov ecx, edx
mov eax, dword [ecx + eax*4]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 0x48]
call eax
mov dword [edi + 0x38c], ebx
mov dword [edi + 0x398], ebx
mov dword [edi + 0x394], ebx
cmp byte [edi + 0x324], 0
jne 0x42ff3b
mov edi, dword [esi]
mov eax, 7
call fcn.00401a00
mov eax, dword [ebp + 0x974]
cdq
mov ecx, 0x14
idiv ecx
mov eax, dword [ebp + 0x990]
lea ecx, [eax + edx*2 + 0x198]
mov eax, dword [ebp + ecx*4]
call fcn.00404cf0
mov eax, dword [ebp + 0x974]
cdq
mov ecx, 0x14
idiv ecx
mov eax, dword [ebp + 0x990]
xor ebx, ebx
lea ecx, [eax + edx*2 + 0x198]
mov edx, dword [ebp + ecx*4]
mov eax, 1
mov word [edx + 0x408], ax
mov edi, eax
cmp dword [ebp + 0x97c], 0xd
jne case.0x42fbd9.1
mov eax, dword [ebp + 0x974]
cmp eax, 0x18
jge 0x42ffbc
inc eax
mov dword [ebp + 0x97c], 0xb
mov dword [ebp + 0x974], eax
jmp case.0x42fbd9.1
mov dword [ebp + 0x974], 0x1e
jmp case.0x42fbd9.1
test al, al
je case.0x42fbd9.1
call fcn.0043bc60
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x19
jl 0x42fff9
cmp dword [ebp + 0x974], 0x1f
je 0x42fff9
mov dword [ebp + 0x978], edi
mov dword [ebp + 0x974], 0xc
jmp case.0x42fbd9.1
mov dword [ebp + 0x978], 4
mov dword [ebp + 0x974], 0x63
jmp case.0x42fbd9.1
mov dword [ebp + 0x97c], ebx
mov dword [ebp + 0x978], 3
mov dword [ebp + 0x974], 0x51
jmp case.0x42fbd9.1
test al, al
je case.0x42fbd9.1
mov byte [ebp + 0x970], 0
jmp case.0x42fbd9.1
mov edi, 1
xor ebx, ebx
cmp byte [ebp + 0x860], 0
je case.0x430062.1
mov eax, dword [ebp + 0x864]
cmp eax, 0x5a
ja case.0x430062.1
movzx edx, byte [eax + 0x430750]
jmp dword [edx*4 + 0x430738]
mov eax, dword [ebp + 0x868]
add eax, 0x52
lea eax, [eax + eax*2]
add eax, dword [ebp + 0x870]
mov eax, dword [ebp + eax*4]
cmp byte [eax + 0x428], 0
je case.0x430062.1
cmp word [eax + 0x40e], 2
jle case.0x430062.1
mov eax, dword [0x460010]
mov dword [eax + 0x3a0], ebx
mov dword [eax + 0x3ac], ebx
mov dword [eax + 0x3b0], ebx
mov byte [eax + 0x3b4], 0
mov eax, dword [eax + 0x3cc]
cmp dword [eax + 4], 7
jle 0x4300d9
mov ecx, dword [eax + 0xc]
cmp dword [ecx + 0x1c], ebx
je 0x4300d9
mov edx, ecx
mov eax, dword [edx + 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x48]
push eax
call edx
mov eax, dword [ebp + 0x86c]
mov dword [ebp + 0x868], eax
lea eax, [eax + eax*2]
mov dword [ebp + 0x864], 0xa
mov dword [ebp + 0x870], edi
mov esi, dword [ebp + eax*4 + 0x3dc]
call fcn.00404d50
mov ebp, dword [ebp + 0x868]
add ebp, 2
cmp ebp, 6
jle 0x430117
mov ebp, 6
mov eax, dword [0x460010]
mov ecx, dword [eax + 0x3a8]
mov edx, dword [eax + 0x3cc]
lea edi, [eax + 0x3cc]
mov esi, eax
mov byte [eax + 0x3b4], 1
mov eax, ebp
call fcn.00401ac0
mov eax, dword [esi + 0x3a4]
xor ebx, ebx
cmp eax, ebx
jle 0x430166
mov ecx, dword [edi]
cmp eax, dword [ecx + 4]
jge 0x430166
mov edx, dword [ecx + 0xc]
cmp dword [edx + eax*4], ebx
je 0x430166
mov ecx, edx
mov eax, dword [ecx + eax*4]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 0x48]
call eax
cmp byte [esi + 0x324], 0
mov dword [esi + 0x3a4], ebx
mov dword [esi + 0x3b0], ebx
mov dword [esi + 0x3ac], ebx
jne case.0x430062.1
mov edi, dword [edi]
mov eax, ebp
call fcn.00401a00
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x30
ret
mov eax, dword [ebp + 0x868]
mov ecx, dword [ebp + 0x870]
add eax, 0x52
lea eax, [eax + eax*2]
add ecx, eax
mov edx, dword [ebp + ecx*4]
cmp byte [edx + 0x428], 0
je case.0x430062.1
mov dword [ebp + 0x864], 0x14
mov dword [ebp + 0x870], 2
mov ebp, dword [ebp + eax*4 + 8]
mov eax, ebp
call fcn.00404cf0
cmp dword [ebp + 0x3cc], ebx
je case.0x430062.1
mov eax, dword [ebp + 0x3ec]
cmp eax, ebx
je 0x430201
push eax
call fcn.0043a661
add esp, 4
mov dword [ebp + 0x3ec], ebx
mov eax, dword [ebp + 0x3cc]
push ebx
push ebx
push 4
push eax
mov dword [ebp + 0x424], ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x30
ret
mov eax, dword [ebp + 0x868]
add eax, 0x52
lea ecx, [eax + eax*2]
add ecx, dword [ebp + 0x870]
mov esi, dword [ebp + ecx*4]
cmp dword [esi + 8], ebx
jne 0x43024c
mov dword [esi + 8], edi
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [esi + 0xd0], eax
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edx, eax
sub edx, dword [esi + 0xd0]
mov dword [esi + 0x198], eax
cmp edx, 0x12c
jb case.0x430062.1
mov dword [esi + 8], ebx
dec dword [ebp + 0x874]
cmp dword [ebp + 0x874], ebx
jg case.0x430062.1
pop edi
pop esi
mov dword [ebp + 0x874], ebx
mov dword [ebp + 0x864], 0x5a
pop ebp
xor eax, eax
pop ebx
add esp, 0x30
ret
mov eax, dword [ebp + 0x868]
add eax, 0x52
lea eax, [eax + eax*2]
add eax, dword [ebp + 0x870]
mov esi, dword [ebp + eax*4]
cmp dword [esi + 8], ebx
jne 0x4302c5
mov dword [esi + 8], edi
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [esi + 0xd0], eax
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, eax
sub ecx, dword [esi + 0xd0]
mov dword [esi + 0x198], eax
cmp ecx, 0x3e8
jb case.0x430062.1
mov dword [esi + 8], ebx
dec dword [ebp + 0x874]
cmp dword [ebp + 0x874], ebx
jg case.0x430062.1
pop edi
pop esi
mov byte [ebp + 0x860], 0
pop ebp
xor eax, eax
pop ebx
add esp, 0x30
ret
add dword [ebp + 0x874], 2
cmp dword [ebp + 0x874], 0x26
jl case.0x430062.1
mov byte [ebp + 0x860], 0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x30
ret