Function at 0x61c530
Capabilities:
Hide graphical window
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x708
mov eax, dword [0x821c70]
push ebx
push ebp
mov dword [esp + 0x10], ecx
push esi
mov ebx, edx
push edi
lea ecx, [esp + 0x24]
mov dword [esp + 0x1c], ebx
xor esi, esi
mov byte [esp + 0x13], 0
mov dword [esp + 0x4c], eax
call fcn.0068f980
lea ecx, [esp + 0x3c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], esi
call fcn.0068f980
lea ecx, [esp + 0x30]
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], esi
call fcn.0068f980
lea ecx, [esp + 0x74]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], esi
call fcn.0068f980
lea ecx, [esp + 0x60]
mov dword [esp + 0x70], eax
call fcn.0068f980
lea ecx, [esp + 0x88]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], esi
call fcn.0068f980
lea ecx, [esp + 0x54]
mov dword [esp + 0x84], eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x44], esi
call fcn.0068f980
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x71c]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x54]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edx
call fcn.0068f980
mov ecx, dword [esp + 0x720]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x54]
mov dword [esp + 0x3c], eax
call fcn.0068f980
mov ebp, dword [esp + 0x724]
mov edx, dword [esp + 0x54]
lea ecx, [esp + 0xb0]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ebp
call fcn.0068f980
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xb0]
lea ecx, [esp + 0x54]
mov dword [esp + 0x74], eax
call fcn.0068f980
mov edx, dword [esp + 0x54]
mov ecx, 0x3c
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x7c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
call fcn.0068f980
lea ecx, [esp + 0x54]
mov dword [esp + 0x78], eax
mov dword [esp + 0x80], 0x12c
mov dword [esp + 0x6c], esi
call fcn.0068f980
mov ecx, eax
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edx, dword [ebx]
mov ecx, ebx
mov edi, eax
call dword [edx + 0x10]
test eax, eax
jle 0x61c6dd
mov eax, dword [esp + 0x730]
lea ebp, [eax + 0x14]
mov dword [ebp], edi
mov edx, dword [ebx]
mov ecx, ebx
inc esi
add ebp, 0x18
call dword [edx + 0x10]
cmp esi, eax
jl 0x61c6c4
mov ebp, dword [esp + 0x724]
mov ecx, dword [0x81a788]
mov edi, dword [esp + 0x71c]
call fcn.005303e0
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
cmp eax, 0xffffffff
je 0x61c70f
lea ecx, [esp + 0x24]
call fcn.0068f980
sub eax, dword [esp + 0x20]
cmp eax, esi
jge 0x61c717
sub esi, eax
test esi, esi
jne 0x61c800
lea ecx, [esp + 0xb8]
call fcn.0068f980
mov edx, dword [esp + 0x72c]
mov ecx, edi
mov dword [esp + 0xb4], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x28], ecx
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.0061dd20
cmp dword [0xa255a8], 4
jne 0x61c800
mov al, byte [0xa27eb4]
test al, al
je 0x61c800
mov ecx, 0xa285a8
call fcn.00525940
mov ecx, dword [0xa27d8c]
mov dword [esp + 0x550], 0x27
push 0x14
mov ecx, dword [ecx]
call fcn.006eec70
lea edx, [esp + 0x558]
push eax
push edx
call fcn.0076d960
mov eax, dword [0xa1e0c4]
mov esi, 1
add esp, 0xc
mov ecx, dword [eax + 0x30]
mov eax, dword [0xa27d98]
cmp eax, esi
mov dword [esp + 0x57f], ecx
jle 0x61c7fb
mov edx, dword [0xa27d8c]
mov eax, dword [edx + esi*4]
mov edx, dword [0xa1e0c4]
mov ecx, dword [eax + 0x5d]
cmp ecx, dword [edx + 0x30]
je 0x61c7f1
add eax, 0x28
mov ecx, 0xa285a8
push eax
push 0
lea eax, [esp + 0x558]
push 0x57
push eax
call fcn.00524410
mov eax, dword [0xa27d98]
inc esi
cmp esi, eax
jl 0x61c7c0
call fcn.004821e0
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x80]
cmp eax, 0xffffffff
je 0x61c823
lea ecx, [esp + 0x7c]
call fcn.0068f980
sub eax, dword [esp + 0x78]
cmp eax, esi
jge 0x61c827
sub esi, eax
test esi, esi
jne 0x61c869
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x61c875
lea ecx, [esp + 0xd0]
call fcn.0068f980
mov edx, dword [esp + 0xd0]
mov ecx, 0x12c
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], ecx
jmp 0x61c938
mov eax, dword [esp + 0x18]
test eax, eax
je 0x61c938
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x64]
cmp eax, 0xffffffff
je 0x61c895
lea ecx, [esp + 0x60]
call fcn.0068f980
sub eax, dword [esp + 0x5c]
cmp eax, esi
jge 0x61c89d
sub esi, eax
test esi, esi
jg 0x61c938
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x8c]
cmp eax, 0xffffffff
je 0x61c8c9
lea ecx, [esp + 0x88]
call fcn.0068f980
sub eax, dword [esp + 0x84]
cmp eax, esi
jge 0x61c8cd
sub esi, eax
test esi, esi
jg 0x61c938
mov eax, dword [0xa255a8]
cmp eax, 1
je 0x61c8e5
cmp eax, 2
je 0x61c8e5
mov al, byte [0xa27eb4]
test al, al
je 0x61c938
lea ecx, [esp + 0x118]
call fcn.0068f980
mov ecx, 0x3c
mov dword [esp + 0x114], eax
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x64], ecx
mov ecx, dword [0xa255a0]
mov dword [esp + 0x60], eax
mov dl, byte [ecx + 0x223b]
mov ecx, 0xa255a8
neg dl
sbb edx, edx
and edx, 0x64
add edx, 0x64
push edx
call fcn.006682c0
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
cmp eax, 0xffffffff
je 0x61c95f
lea ecx, [esp + 0x3c]
call fcn.0068f980
sub eax, dword [esp + 0x38]
cmp eax, esi
jge 0x61c967
sub esi, eax
test esi, esi
jne 0x61cfb7
cmp dword [0xa255a8], 4
jne 0x61c97a
mov ecx, 0xa285a8
call fcn.00525940
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [ebx]
xor ecx, ecx
test edi, edi
sete cl
xor edx, edx
mov edi, ecx
test esi, esi
sete dl
mov ecx, ebx
mov dword [esp + 0x48], edi
mov dword [esp + 0xac], edx
call dword [eax + 0x10]
mov esi, eax
lea ecx, [esp + 0x74]
mov dword [esp + 0x68], esi
call fcn.0068f980
sub eax, dword [esp + 0x70]
test esi, esi
mov dword [0xa939d0], eax
jle 0x61c9e6
mov edx, dword [esp + 0x730]
mov eax, 0xa93828
sub edx, eax
mov ebp, esi
lea esi, [edx + eax]
mov edi, eax
mov ecx, 6
add eax, 0x18
dec ebp
rep movsd dword es:[edi], dword [esi]
jne 0x61c9d0
mov edi, dword [esp + 0x48]
test edi, edi
je 0x61ca9e
mov cl, byte [0xa27fb0]
mov edx, dword [0xb0de30]
push 0
push 0x61ea20
mov byte [0xa9de25], cl
mov ecx, dword [0xb0dbd8]
push edx
mov edx, 0xea
mov byte [0xa27fb0], 0
mov dword [0xa9da10], 0xffffffff
call fcn.0072a160
test eax, eax
mov dword [0xa5fc08], eax
je 0x61caa3
push 0xa9da10
push 8
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov ecx, dword [0xa5fc08]
mov edx, 0xea
call fcn.005f7350
mov eax, dword [0xa5fc08]
push 1
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [0xa5fc08]
push 1
push 0
push 0x4a9
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x821f88]
mov edx, dword [ecx]
call dword [edx + 0x1c]
test al, al
mov byte [0xa9da18], al
je 0x61ca93
mov ecx, dword [0x821f88]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [0x821f88]
mov edx, dword [ecx]
call dword [edx + 0x10]
mov eax, dword [0xa5fc08]
cmp dword [0xa9da10], 2
je 0x61d5f6
lea ecx, [esp + 0x2c]
call fcn.004dd740
mov ecx, eax
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
test edi, edi
jne 0x61cae2
cmp edx, dword [0xa9de28]
je 0x61ceb6
mov edi, dword [esp + 0x48]
mov ecx, dword [0xa5fc08]
push 0x650
push ecx
mov dword [0xa9de28], edx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
test esi, esi
je 0x61cb44
mov edx, dword [0xa9de28]
mov ecx, str.TXT_TIME_ALLOWED
push edx
push 0xe55
push str.C:RA2Queue.CPP
xor edx, edx
call fcn.006eea10
push eax
lea eax, [esp + 0x158]
push eax
call fcn.0076ecf4
add esp, 0xc
lea ecx, [esp + 0x150]
push ecx
push 0
push 0x4b2
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
test byte [0xa9de28], 1
jne 0x61cb60
mov edx, dword [0xa5fc08]
push 0
push 0
push 0xf
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
test edi, edi
je 0x61ceb6
mov eax, dword [0xa25e58]
test eax, eax
je 0x61cb96
mov eax, dword [0xa25e4c]
mov ecx, dword [eax]
push ecx
call fcn.0076d2d5
add esp, 4
mov ecx, 0xa25e48
push 0
call fcn.00625f40
mov eax, dword [0xa25e58]
test eax, eax
jne 0x61cb71
mov edx, dword [0xa5fc08]
mov ecx, 8
xor eax, eax
mov edi, 0xa25e60
rep stosd dword es:[edi], eax
mov ecx, 0x40
or eax, 0xffffffff
mov edi, 0xa25e80
push 0x651
rep stosd dword es:[edi], eax
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
test esi, esi
je 0x61ceb6
mov eax, dword [esp + 0xac]
test eax, eax
je 0x61ce7f
mov ecx, dword [esp + 0x68]
xor ebp, ebp
xor eax, eax
mov edx, SysReAllocString
test ecx, ecx
jle 0x61cc0c
mov edi, dword [esp + 0x730]
mov ecx, dword [edi]
cmp ecx, edx
jge 0x61cc00
mov edx, ecx
mov ebp, eax
mov ecx, dword [esp + 0x68]
inc eax
add edi, 0x18
cmp eax, ecx
jl 0x61cbf6
mov eax, dword [0xa255a8]
cmp eax, 3
je 0x61cc45
cmp eax, 4
je 0x61cc45
mov eax, dword [0xa27d8c]
xor edx, edx
mov ecx, dword [eax + 4]
push ecx
push 0xe92
push str.C:RA2Queue.CPP
mov ecx, str.TXT_RECONNECTING_TO
call fcn.006eea10
lea edx, [esp + 0x154]
push eax
push edx
jmp 0x61cc7b
push ebp
mov ecx, 0xa285a8
call fcn.00524310
mov ecx, 0xa285a8
push eax
call fcn.00524330
xor edx, edx
mov ecx, str.TXT_RECONNECTING_TO
push eax
push 0xe8c
push str.C:RA2Queue.CPP
call fcn.006eea10
push eax
lea eax, [esp + 0x158]
push eax
call fcn.0076ecf4
add esp, 0xc
lea edx, [esp + 0x150]
or ecx, 0xffffffff
push esi
call fcn.005bd7e0
mov edx, 0x82206c
or ecx, 0xffffffff
push esi
call fcn.005bd7e0
mov eax, dword [0xa255a8]
cmp eax, 4
jne 0x61cd70
push 0xea0
push str.C:RA2Queue.CPP
xor edx, edx
mov ecx, str.TXT_RECONNECT_HELP3
call fcn.006eea10
lea ecx, [esp + 0x150]
push eax
push ecx
call fcn.0076ec19
lea edx, [esp + 0x158]
push 0x7c1614
push edx
call fcn.0076ebef
add esp, 0x10
xor edx, edx
mov ecx, str.TXT_RECONNECT_HELP3B
push 0xea2
push str.C:RA2Queue.CPP
call fcn.006eea10
push eax
lea eax, [esp + 0x154]
push eax
call fcn.0076ebef
lea ecx, [esp + 0x158]
push 0x7c1614
push ecx
call fcn.0076ebef
add esp, 0x10
xor edx, edx
mov ecx, str.TXT_RECONNECT_HELP3C
push 0xea4
push str.C:RA2Queue.CPP
call fcn.006eea10
lea edx, [esp + 0x150]
push eax
push edx
call fcn.0076ebef
add esp, 8
lea edx, [esp + 0x150]
or ecx, 0xffffffff
push esi
call fcn.005bd7e0
mov edx, 0x82206c
or ecx, 0xffffffff
push esi
call fcn.005bd7e0
mov eax, dword [0xa255a8]
cmp eax, 4
je 0x61cd79
cmp eax, 3
jne 0x61ce27
push 0xeab
push str.C:RA2Queue.CPP
xor edx, edx
mov ecx, str.TXT_RECONNECT_HELP2
call fcn.006eea10
push eax
lea eax, [esp + 0x154]
push eax
call fcn.0076ec19
lea ecx, [esp + 0x158]
push 0x7c1614
push ecx
call fcn.0076ebef
mov eax, dword [0xa255a8]
add esp, 0x10
cmp eax, 4
jne 0x61cddd
push 0xeaf
push str.C:RA2Queue.CPP
xor edx, edx
mov ecx, str.TXT_RECONNECT_HELP2B
call fcn.006eea10
lea edx, [esp + 0x150]
push eax
push edx
jmp 0x61ce01
cmp eax, 3
jne 0x61ce09
push 0xeb1
push str.C:RA2Queue.CPP
xor edx, edx
mov ecx, str.TXT_RECONNECT_HELP4
call fcn.006eea10
push eax
lea eax, [esp + 0x154]
push eax
call fcn.0076ebef
add esp, 8
push esi
lea edx, [esp + 0x154]
or ecx, 0xffffffff
call fcn.005bd7e0
mov edx, 0x82206c
or ecx, 0xffffffff
push esi
call fcn.005bd7e0
push esi
mov edx, 0x82206c
or ecx, 0xffffffff
call fcn.005bd7e0
xor edx, edx
mov ecx, str.TXT_RECONNECT_HELP5
push esi
push 0xebb
push str.C:RA2Queue.CPP
call fcn.006eea10
mov edx, eax
or ecx, 0xffffffff
call fcn.005bd7e0
xor edx, edx
mov ecx, str.TXT_RECONNECT_HELP1
push esi
push 0xec0
push str.C:RA2Queue.CPP
call fcn.006eea10
mov edx, eax
or ecx, 0xffffffff
call fcn.005bd7e0
mov edx, 0x82206c
push esi
jmp 0x61ceae
push 0xec3
push str.C:RA2Queue.CPP
xor edx, edx
mov ecx, str.TXT_WAITING_FOR_CONNECTIONS
call fcn.006eea10
lea ecx, [esp + 0x150]
push eax
push ecx
call fcn.0076ecf4
add esp, 8
lea edx, [esp + 0x150]
push esi
or ecx, 0xffffffff
call fcn.005bd7e0
mov eax, dword [0xa25e58]
test eax, eax
jle 0x61cef0
mov eax, dword [0xa25e4c]
mov edx, dword [eax]
mov eax, dword [eax]
mov edx, dword [edx + 0x2f]
mov ecx, dword [eax + 0x33]
call fcn.0061e900
mov ecx, dword [0xa25e4c]
mov edx, dword [ecx]
push edx
call fcn.0076d2d5
add esp, 4
mov ecx, 0xa25e48
push 0
call fcn.00625f40
mov edx, dword [0xa27d98]
xor esi, esi
test edx, edx
jle 0x61cfa1
mov edi, dword [esp + 0x730]
mov eax, dword [0xa27d8c]
dec edx
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x5d]
mov ecx, dword [ecx*4 + 0xa25e60]
cmp ecx, edx
jl 0x61cf50
push ecx
push eax
push str.Kicking_player__s_from_the_game_due_to__d_votes_n
call fcn.004068f0
add esp, 0xc
test esi, esi
je 0x61cf5d
mov eax, dword [0xa27d8c]
mov edx, dword [ebx]
push 1
push edi
mov ecx, dword [eax + esi*4]
mov eax, dword [ecx + 0x5d]
mov ecx, ebx
push eax
call dword [edx + 0x18]
mov edx, eax
mov ecx, ebx
call fcn.0061ed60
mov edx, dword [0xa27d98]
inc esi
cmp esi, edx
jl 0x61cf07
jmp 0x61cfa1
push str.Outvoted_player_is_me__n
call fcn.004068f0
mov eax, dword [0xa27d98]
mov esi, 1
add esp, 4
cmp eax, esi
jle 0x61cfa1
mov eax, dword [0xa27d8c]
mov edx, dword [ebx]
push 0
push edi
mov ecx, dword [eax + esi*4]
mov eax, dword [ecx + 0x5d]
mov ecx, ebx
push eax
call dword [edx + 0x18]
mov edx, eax
mov ecx, ebx
call fcn.0061ed60
mov eax, dword [0xa27d98]
inc esi
cmp esi, eax
jl 0x61cf78
mov ebp, dword [esp + 0x724]
mov edi, dword [esp + 0x71c]
mov dword [esp + 0x14], 1
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x34]
cmp eax, 0xffffffff
je 0x61cfd7
lea ecx, [esp + 0x30]
call fcn.0068f980
sub eax, dword [esp + 0x2c]
cmp eax, esi
jge 0x61cfdf
sub esi, eax
test esi, esi
jne 0x61d0a9
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x61d6ac
mov edx, dword [esp + 0x730]
mov ecx, ebx
call fcn.0061ef30
test eax, eax
je 0x61d711
push 2
mov ecx, 0x81a800
call fcn.004dfee0
mov ecx, 0x81a800
call fcn.004e0070
lea ecx, [esp + 0xe8]
call fcn.0068f980
mov edx, dword [esp + 0xe8]
mov ecx, edi
mov dword [esp + 0xec], ecx
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x10c]
mov dword [esp + 0xe4], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
call fcn.0068f980
mov ecx, dword [esp + 0x720]
mov dword [esp + 0x108], eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x110], ecx
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x100]
mov dword [esp + 0x3c], eax
call fcn.0068f980
mov edx, dword [esp + 0x100]
mov ecx, ebp
mov dword [esp + 0xfc], eax
mov dword [esp + 0x104], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
mov esi, 1
mov eax, dword [ebx]
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0x72c]
lea edx, [esp + 0xac]
push edx
push ecx
mov ecx, ebx
call dword [eax + 0xc]
test eax, eax
je 0x61d2dd
mov ecx, dword [0x81a788]
call fcn.005303e0
mov eax, dword [0xa255a8]
cmp eax, 1
je 0x61d0f3
cmp eax, 2
jne 0x61d274
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x728]
call fcn.0061e240
cmp eax, 4
jne 0x61d1aa
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 4]
lea ecx, [esp + 0x130]
call fcn.0068f980
mov ecx, edi
mov dword [esp + 0x12c], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x134], ecx
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x124]
mov dword [esp + 0x24], eax
call fcn.0068f980
mov ecx, dword [esp + 0x720]
mov edx, dword [esp + 0x124]
mov dword [esp + 0x128], ecx
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0xc4]
mov dword [esp + 0x120], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
call fcn.0068f980
mov dword [esp + 0xc0], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc4]
mov ecx, ebp
mov dword [esp + 0xc8], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
jmp 0x61d2c3
cmp eax, 5
je 0x61d2d1
cmp eax, 6
jne 0x61d270
mov edx, dword [esp + 0x730]
mov ecx, ebx
call fcn.0061ef30
test eax, eax
je 0x61d76f
push 2
mov ecx, 0x81a800
call fcn.004dfee0
mov ecx, 0x81a800
call fcn.004e0070
lea ecx, [esp + 0xdc]
call fcn.0068f980
mov edx, dword [esp + 0xdc]
mov ecx, edi
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0xf4]
mov dword [esp + 0xd8], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
call fcn.0068f980
mov ecx, dword [esp + 0x720]
mov dword [esp + 0xf0], eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x54]
mov dword [esp + 0x3c], eax
call fcn.0068f980
mov edx, dword [esp + 0x54]
mov ecx, ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
jmp 0x61d274
test eax, eax
jne 0x61d2dd
mov ecx, dword [esp + 0x730]
mov edx, dword [esp + 0xa8]
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0xa4]
push ecx
push edx
mov edx, dword [esp + 0x734]
push eax
mov ecx, ebx
call fcn.0061dde0
cmp eax, 1
jne 0x61d2aa
inc dword [esp + 0x44]
jmp 0x61d2bc
cmp eax, 2
je 0x61d7f2
cmp eax, 3
je 0x61d875
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 4]
mov eax, esi
inc esi
cmp eax, 0x40
jl 0x61d0ae
jmp 0x61d2dd
mov eax, dword [esp + 0x18]
test eax, eax
je 0x61d2dd
inc dword [esp + 0x44]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x61d2ec
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x10]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x61d30a
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10]
cmp dword [esp + 0x44], eax
jge 0x61d8f8
jmp 0x61d58c
mov eax, dword [0xa2586c]
mov ecx, dword [0xa25870]
or ebp, 0xffffffff
cmp eax, 1
mov dword [esp + 0x48], ecx
je 0x61d8f8
mov edi, dword [esp + 0x1c]
mov edx, dword [0xa2894c]
mov ecx, edi
xor esi, esi
mov eax, dword [edi]
lea ebx, [edx + 0x3e8]
call dword [eax + 0x10]
test eax, eax
jle 0x61d368
mov edi, dword [esp + 0x730]
mov eax, dword [edi]
cmp eax, ebx
jge 0x61d353
mov ebx, eax
mov ebp, esi
mov ecx, dword [esp + 0x1c]
inc esi
add edi, 0x18
mov edx, dword [ecx]
call dword [edx + 0x10]
cmp esi, eax
jl 0x61d349
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
mov ecx, edi
xor esi, esi
call dword [eax + 0x10]
test eax, eax
jle 0x61d399
mov ecx, dword [esp + 0x730]
lea edi, [ecx + 4]
mov edx, dword [edi + 4]
mov eax, dword [edi]
cmp edx, eax
jb 0x61d3b0
mov ecx, dword [esp + 0x1c]
inc esi
add edi, 0x18
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp esi, eax
jl 0x61d37f
mov ecx, dword [esp + 0x48]
mov eax, dword [0xa2894c]
lea edx, [ebx + ecx]
cmp eax, edx
jl 0x61d8f8
or esi, 0xffffffff
mov eax, dword [esp + 0x48]
add ebx, eax
mov eax, dword [0xa2894c]
cmp eax, ebx
jge 0x61d3c2
or ebp, 0xffffffff
mov al, byte [0xa25bd4]
test al, al
je 0x61d3f6
mov al, byte [0xa25bd5]
test al, al
je 0x61d3f6
mov eax, dword [esp + 0x6c]
test eax, eax
jle 0x61d3f6
mov al, byte [esp + 0x13]
test al, al
je 0x61d3ed
cmp ebp, 0xffffffff
jne 0x61d3ed
cmp esi, ebp
je 0x61d3f6
mov cl, 1
call fcn.0053efe0
jmp 0x61d402
mov al, byte [esp + 0x13]
test al, al
jne 0x61d588
cmp ebp, 0xffffffff
je 0x61d4c5
mov al, byte [0xa25bd4]
test al, al
je 0x61d4b0
mov al, byte [0xa25bd5]
test al, al
je 0x61d4b0
lea eax, [ebp + ebp*4 + 5]
mov ebx, 0xff
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x13c], 0x190
lea ecx, [eax + eax*4]
mov eax, 0x28
shl ecx, 2
mov dword [esp + 0x138], ecx
mov ecx, dword [0x83b2d4]
sar eax, cl
mov ecx, dword [0x83b2d0]
mov edx, dword [edi]
mov dword [esp + 0x140], 0x23
mov dword [esp + 0x144], 3
shl eax, cl
mov ecx, dword [0x83b2dc]
sar ebx, cl
mov ecx, dword [0x83b2d8]
shl ebx, cl
mov ecx, dword [0x83b2cc]
or eax, ebx
mov ebx, 0xff
sar ebx, cl
mov ecx, dword [0x83b2c8]
shl ebx, cl
lea ecx, [esp + 0x138]
or eax, ebx
push eax
push ecx
mov ecx, edi
call dword [edx + 0x14]
jmp 0x61d4b4
mov edi, dword [esp + 0x4c]
lea edx, [ebp + ebp*2]
lea eax, [ebp + edx*4]
inc dword [eax*8 + 0xa258e8]
jmp 0x61d4c9
mov edi, dword [esp + 0x4c]
cmp esi, 0xffffffff
je 0x61d583
mov al, byte [0xa25bd4]
test al, al
je 0x61d574
mov al, byte [0xa25bd5]
test al, al
je 0x61d574
lea eax, [esi + esi*4]
mov esi, 0x28
mov edx, dword [edi]
mov dword [esp + 0x94], 0x190
lea eax, [eax + eax*4]
mov dword [esp + 0x98], 0x28
mov dword [esp + 0x9c], 3
lea ecx, [eax*4 + 0x8c]
mov eax, 0x28
mov dword [esp + 0x90], ecx
mov ecx, dword [0x83b2d4]
sar eax, cl
mov ecx, dword [0x83b2d0]
shl eax, cl
mov ecx, dword [0x83b2dc]
sar esi, cl
mov ecx, dword [0x83b2d8]
shl esi, cl
mov ecx, dword [0x83b2cc]
or eax, esi
mov esi, 0xff
sar esi, cl
mov ecx, dword [0x83b2c8]
shl esi, cl
lea ecx, [esp + 0x90]
or eax, esi
push eax
push ecx
mov ecx, edi
call dword [edx + 0x14]
lea edx, [ebp + ebp*2]
lea eax, [ebp + edx*4]
inc dword [eax*8 + 0xa258ec]
mov byte [esp + 0x13], 1
mov ebx, dword [esp + 0x1c]
call fcn.004821e0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x61d5ed
mov eax, dword [0xa28968]
test eax, eax
jne 0x61d5ed
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x61d5ed
lea eax, [esp + 0x148]
lea ecx, [esp + 0x14c]
push eax
lea edx, [esp + 0xa8]
push ecx
push edx
mov ecx, 0x81a800
call fcn.004dff10
lea ecx, [esp + 0xa4]
call fcn.0053e430
mov ecx, dword [0x821c8c]
mov eax, dword [ecx]
call dword [eax + 0x5c]
mov ecx, 0x81a800
call fcn.004e0070
inc dword [esp + 0x6c]
jmp 0x61c6d6
xor edx, edx
mov ecx, eax
call fcn.0072a240
mov al, byte [0xa9da18]
test al, al
je 0x61d613
mov ecx, dword [0x821f88]
mov edx, dword [ecx]
call dword [edx + 0x18]
mov al, byte [0xa9de25]
push 2
mov ecx, 0x81a800
mov byte [0xa27fb0], al
call fcn.004dfee0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x61d687
mov ecx, 0xea
call fcn.0072a3a0
mov esi, eax
test esi, esi
je 0x61d687
mov al, byte [0xa9da18]
test al, al
je 0x61d655
mov ecx, dword [0x821f88]
mov edx, dword [ecx]
call dword [edx + 0x18]
xor edx, edx
mov ecx, esi
call fcn.0072a240
mov al, byte [0xa9de25]
mov ecx, 0x81a800
push 2
mov byte [0xa27fb0], al
call fcn.004dfee0
mov al, byte [0xa27fb0]
test al, al
je 0x61d687
mov ecx, 0x81a800
call fcn.004e0070
cmp dword [0xa255a8], 4
jne 0x61d69a
mov ecx, 0xa285a8
call fcn.00525950
pop edi
pop esi
pop ebp
mov eax, 8
pop ebx
add esp, 0x708
ret 0x18
mov eax, dword [esp + 0x14]
test eax, eax
je 0x61d7cd
mov ecx, 0xea
call fcn.0072a3a0
mov esi, eax
test esi, esi
je 0x61d7cd
mov al, byte [0xa9da18]
test al, al
je 0x61d6e0
mov ecx, dword [0x821f88]
mov edx, dword [ecx]
call dword [edx + 0x18]
xor edx, edx
mov ecx, esi
call fcn.0072a240
mov al, byte [0xa9de25]
mov ecx, 0x81a800
push 2
mov byte [0xa27fb0], al
call fcn.004dfee0
mov al, byte [0xa27fb0]
test al, al
je 0x61d7cd
jmp 0x61d7c3
mov eax, dword [esp + 0x14]
test eax, eax
je 0x61d7cd
mov ecx, 0xea
call fcn.0072a3a0
mov esi, eax
test esi, esi
je 0x61d7cd
mov al, byte [0xa9da18]
test al, al
je 0x61d745
mov ecx, dword [0x821f88]
mov edx, dword [ecx]
call dword [edx + 0x18]
xor edx, edx
mov ecx, esi
call fcn.0072a240
mov al, byte [0xa9de25]
mov ecx, 0x81a800
push 2
mov byte [0xa27fb0], al
call fcn.004dfee0
mov al, byte [0xa27fb0]
test al, al
je 0x61d7cd
jmp 0x61d7c3
mov eax, dword [esp + 0x14]
test eax, eax
je 0x61d7cd
mov ecx, 0xea
call fcn.0072a3a0
mov esi, eax
test esi, esi
je 0x61d7cd
mov al, byte [0xa9da18]
test al, al
je 0x61d79b
mov ecx, dword [0x821f88]
mov edx, dword [ecx]
call dword [edx + 0x18]
xor edx, edx
mov ecx, esi
call fcn.0072a240
mov al, byte [0xa9de25]
mov ecx, 0x81a800
push 2
mov byte [0xa27fb0], al
call fcn.004dfee0
mov al, byte [0xa27fb0]
test al, al
je 0x61d7cd
mov ecx, 0x81a800
call fcn.004e0070
cmp dword [0xa255a8], 4
jne 0x61d7e0
mov ecx, 0xa285a8
call fcn.00525950
pop edi
pop esi
pop ebp
mov eax, 7
pop ebx
add esp, 0x708
ret 0x18
mov eax, dword [esp + 0x14]
test eax, eax
je 0x61d850
mov ecx, 0xea
call fcn.0072a3a0
mov esi, eax
test esi, esi
je 0x61d850
mov al, byte [0xa9da18]
test al, al
je 0x61d81e
mov ecx, dword [0x821f88]
mov edx, dword [ecx]
call dword [edx + 0x18]
xor edx, edx
mov ecx, esi
call fcn.0072a240
mov al, byte [0xa9de25]
mov ecx, 0x81a800
push 2
mov byte [0xa27fb0], al
call fcn.004dfee0
mov al, byte [0xa27fb0]
test al, al
je 0x61d850
mov ecx, 0x81a800
call fcn.004e0070
cmp dword [0xa255a8], 4
jne 0x61d863
mov ecx, 0xa285a8
call fcn.00525950
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x708
ret 0x18
mov eax, dword [esp + 0x14]
test eax, eax
je 0x61d8d3
mov ecx, 0xea
call fcn.0072a3a0
mov esi, eax
test esi, esi
je 0x61d8d3
mov al, byte [0xa9da18]
test al, al
je 0x61d8a1
mov ecx, dword [0x821f88]
mov edx, dword [ecx]
call dword [edx + 0x18]
xor edx, edx
mov ecx, esi
call fcn.0072a240
mov al, byte [0xa9de25]
mov ecx, 0x81a800
push 2
mov byte [0xa27fb0], al
call fcn.004dfee0
mov al, byte [0xa27fb0]
test al, al
je 0x61d8d3
mov ecx, 0x81a800
call fcn.004e0070
cmp dword [0xa255a8], 4
jne 0x61d8e6
mov ecx, 0xa285a8
call fcn.00525950
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x708
ret 0x18
mov eax, dword [esp + 0x14]
xor edi, edi
cmp eax, edi
je 0x61d971
mov ecx, 0xea
call fcn.0072a3a0
mov esi, eax
cmp esi, edi
je 0x61d958
mov al, byte [0xa9da18]
test al, al
je 0x61d926
mov ecx, dword [0x821f88]
mov edx, dword [ecx]
call dword [edx + 0x18]
xor edx, edx
mov ecx, esi
call fcn.0072a240
mov al, byte [0xa9de25]
mov ecx, 0x81a800
push 2
mov byte [0xa27fb0], al
call fcn.004dfee0
mov al, byte [0xa27fb0]
test al, al
je 0x61d958
mov ecx, 0x81a800
call fcn.004e0070
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
call dword [edx + 0x10]
test eax, eax
jle 0x61d971
mov dword [0xb0fce8], edi
mov dword [0xb10198], edi
mov al, byte [esp + 0x13]
test al, al
je 0x61d9c9
mov al, byte [0xa25bd4]
test al, al
je 0x61d9c9
mov al, byte [0xa25bd5]
test al, al
je 0x61d9c9
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x90]
push edi
push edx
mov eax, dword [ecx]
mov dword [esp + 0x98], 0x64
mov dword [esp + 0x9c], 0x190
mov dword [esp + 0xa0], 0x21c
mov dword [esp + 0xa4], 4
call dword [eax + 0x14]
cmp dword [0xa255a8], 4
jne 0x61d9dc
mov ecx, 0xa285a8
call fcn.00525950
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x708
ret 0x18