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

Disassembly:
sub esp, 0x44
mov dword [esp + 0xc], ecx
push ebx
mov ecx, dword [esp + 0x4c]
push ebp
mov ebp, dword [0xa55d10]
push esi
mov eax, dword [ecx + 0x38]
push edi
cmp eax, ebp
jne 0x5602e8
xor eax, eax
mov esi, 6
mov al, byte [ecx + 0x11a]
mov bx, word [ecx + 0x26]
mov edi, eax
cdq
idiv esi
mov eax, 0xd5555555
mov esi, edx
imul edi
mov di, word [ecx + 0x24]
mov ecx, dword [0xa288f4]
mov eax, edx
mov ecx, dword [ecx + ebp*4]
xor ebp, ebp
shr eax, 0x1f
add edx, eax
push ebp
neg esi
add bx, dx
mov edx, dword [ecx]
add di, si
mov word [esp + 0x36], bx
mov word [esp + 0x34], di
call dword [edx + 0x8c]
mov esi, eax
lea ecx, [esp + 0x48]
movsx eax, di
mov dword [esp + 0x10], eax
push ecx
shl eax, 8
add eax, 0x80
mov ecx, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x4c], eax
movsx eax, bx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x54], ebp
shl eax, 8
add eax, 0x80
mov dword [esp + 0x28], eax
mov dword [esp + 0x50], eax
mov eax, dword [esi]
call dword [eax + 0x19c]
mov edx, dword [esi]
push ebp
mov ecx, esi
mov byte [esi + 0x76], 0
mov byte [esi + 0x74], 1
call dword [edx + 0x11c]
cmp esi, ebp
je 0x55fcc3
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x20]
mov ecx, dword [0xa288f4]
mov edx, dword [0xa55c50]
push ebp
mov ecx, dword [ecx + edx*4]
mov eax, dword [ecx]
call dword [eax + 0x8c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0x48]
mov dword [esp + 0x4c], edx
mov edx, dword [eax]
push ebp
push ecx
mov ecx, eax
mov dword [esp + 0x58], ebp
call dword [edx + 0xd4]
mov edx, dword [0xa288f4]
mov eax, dword [0xa55c50]
push ebp
mov ecx, dword [edx + eax*4 + 4]
mov edx, dword [ecx]
call dword [edx + 0x8c]
mov ecx, dword [esp + 0x30]
push ebp
add ecx, 3
mov dword [esp + 0x54], ebp
movsx edx, cx
mov ecx, dword [esp + 0x1c]
shl ecx, 8
shl edx, 8
add ecx, 0x80
add edx, 0x80
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], edx
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx + 0xd4]
mov edi, dword [esp + 0x1c]
mov ecx, edi
call fcn.0054bf10
mov edx, dword [0xa55d10]
mov eax, dword [0xa288f4]
mov ebx, dword [eax + edx*4]
mov ecx, ebx
mov edx, dword [ebx]
call dword [edx + 0x9c]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x2b8]
test eax, eax
jle 0x55fe4b
mov eax, dword [ebx + 0x2b4]
xor esi, esi
test eax, eax
jle 0x55fe3c
mov ecx, dword [esp + 0x32]
add ecx, ebp
mov word [esp + 0x1e], cx
mov edx, dword [esp + 0x30]
imul eax, ebp
lea ecx, [esi + edx]
add eax, esi
mov word [esp + 0x1c], cx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x58], edx
mov edx, dword [ecx + eax*4 + 0x10]
test edx, edx
je 0x55fe2d
lea edx, [esp + 0x58]
push 1
push edx
mov ecx, edi
call fcn.00557300
test al, al
je 0x55fe2d
lea eax, [esp + 0x58]
mov ecx, edi
push eax
call fcn.0054cdf0
mov edx, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov word [edx + ecx*2], 0
mov ecx, dword [esp + 0x58]
movsx eax, word [esp + 0x5a]
movsx edx, cx
shl eax, 9
add eax, edx
js 0x55fe19
cmp eax, 0x40000
jge 0x55fe19
mov edx, dword [0x81a938]
mov eax, dword [edx + eax*4]
test eax, eax
jne 0x55fe24
mov dword [0xa57614], ecx
mov eax, 0xa575f0
push 0xffffffffffffffff
mov ecx, eax
call fcn.00472140
mov eax, dword [ebx + 0x2b4]
inc esi
cmp esi, eax
jl 0x55fda3
mov eax, dword [ebx + 0x2b8]
inc ebp
cmp ebp, eax
jl 0x55fd88
mov eax, dword [ebx + 0x2b8]
xor ebp, ebp
test eax, eax
jle 0x55feeb
mov eax, dword [ebx + 0x2b4]
xor esi, esi
test eax, eax
jle 0x55fedc
mov ecx, dword [esp + 0x32]
add ecx, ebp
mov word [esp + 0x1e], cx
mov edx, dword [esp + 0x30]
imul eax, ebp
lea ecx, [esi + edx]
add eax, esi
mov word [esp + 0x1c], cx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x58], edx
mov edx, dword [ecx + eax*4 + 0x10]
test edx, edx
je 0x55fed1
lea edx, [esp + 0x58]
push 1
push edx
mov ecx, edi
call fcn.00557300
test al, al
je 0x55fed1
lea eax, [esp + 0x58]
mov ecx, edi
push eax
call fcn.0054cdf0
mov edx, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
cmp word [edx + ecx*2], 0
lea eax, [edx + ecx*2]
jne 0x55fed1
lea eax, [esp + 0x58]
mov ecx, edi
push eax
call fcn.00562fe0
mov eax, dword [ebx + 0x2b4]
inc esi
cmp esi, eax
jl 0x55fe72
mov eax, dword [ebx + 0x2b8]
inc ebp
cmp ebp, eax
jl 0x55fe5b
mov eax, dword [ebx + 0x2b8]
xor ebp, ebp
test eax, eax
jle 0x55ffb3
mov eax, dword [ebx + 0x2b4]
xor esi, esi
test eax, eax
jle 0x55ffa4
mov ecx, dword [esp + 0x32]
add ecx, ebp
mov word [esp + 0x1e], cx
mov edx, dword [esp + 0x30]
imul eax, ebp
lea ecx, [esi + edx]
add eax, esi
mov word [esp + 0x1c], cx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x58], edx
mov edx, dword [ecx + eax*4 + 0x10]
test edx, edx
je 0x55ff95
lea edx, [esp + 0x58]
push 1
push edx
mov ecx, edi
call fcn.00557300
test al, al
je 0x55ff95
movsx eax, word [esp + 0x5a]
mov ecx, dword [esp + 0x58]
movsx edx, cx
shl eax, 9
add eax, edx
js 0x55ff74
cmp eax, 0x40000
jge 0x55ff74
mov edx, dword [0x81a938]
mov eax, dword [edx + eax*4]
test eax, eax
jne 0x55ff7f
mov dword [0xa57614], ecx
mov eax, 0xa575f0
mov ecx, eax
call fcn.006cd0a0
lea eax, [esp + 0x58]
mov ecx, 0x81a800
push eax
call fcn.00628aa0
mov eax, dword [ebx + 0x2b4]
inc esi
cmp esi, eax
jl 0x55ff16
mov eax, dword [ebx + 0x2b8]
inc ebp
cmp ebp, eax
jl 0x55fefb
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
shl ecx, 9
lea eax, [ecx + edx]
test eax, eax
mov dword [esp + 0x58], eax
jl 0x55ffdd
cmp eax, 0x40000
jge 0x55ffdd
mov ecx, dword [0x81a938]
mov eax, dword [ecx + eax*4]
test eax, eax
jne 0x55ffec
mov edx, dword [esp + 0x30]
mov eax, 0xa575f0
mov dword [0xa57614], edx
movsx eax, byte [eax + 0x11b]
imul eax, dword [0xa57828]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], ecx
lea eax, [esp + 0x38]
lea ecx, [esp + 0x48]
push eax
push ecx
mov ecx, dword [0x821c8c]
mov dword [esp + 0x54], edx
call fcn.00697ec0
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x32]
lea ecx, [edx + 5]
lea edx, [eax + 3]
mov ax, dx
mov word [esp + 0x58], cx
mov word [esp + 0x5a], ax
movsx eax, ax
movsx esi, cx
shl eax, 9
add eax, esi
js 0x56005f
cmp eax, 0x40000
jge 0x56005f
mov esi, dword [0x81a938]
mov eax, dword [esi + eax*4]
test eax, eax
jne 0x56006d
mov eax, dword [esp + 0x58]
mov dword [0xa57614], eax
mov eax, 0xa575f0
movsx eax, byte [eax + 0x11b]
imul eax, dword [0xa57828]
movsx ecx, cx
shl ecx, 8
movsx edx, dx
add ecx, 0x80
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], ecx
lea eax, [esp + 0x40]
shl edx, 8
lea ecx, [esp + 0x48]
push eax
add edx, 0x80
push ecx
mov ecx, dword [0x821c8c]
mov dword [esp + 0x54], edx
call fcn.00697ec0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
sub eax, ecx
lea edx, [ecx - 0x78]
mov ecx, dword [esp + 0x44]
push 0
lea ebx, [esi - 0x3c]
sub esp, 0x10
sub ecx, esi
mov esi, esp
add eax, 0xf0
add ecx, 0x78
mov dword [esi], edx
mov dword [esi + 4], ebx
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov ecx, dword [0x821c8c]
call fcn.00698510
mov ecx, str.XGRYMED1
call fcn.00425640
mov edx, dword [0x84e4f4]
mov ecx, str.XGRYMED2
lea eax, [edx + eax*4]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
call fcn.00425640
mov ecx, dword [0x84e4f4]
mov edx, dword [ecx + eax*4]
lea eax, [ecx + eax*4]
mov ecx, str.XGRYSML1
mov dword [esp + 0x28], edx
call fcn.00425640
mov ecx, dword [0x84e4f4]
mov edx, dword [ecx + eax*4]
lea eax, [ecx + eax*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], edx
mov ecx, eax
add eax, 3
cmp ecx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], eax
jge 0x5609d0
mov eax, dword [esp + 0x10]
add eax, 5
mov ebx, dword [esp + 0x10]
cmp ebx, eax
mov dword [esp + 0x18], ebx
jge 0x5602c9
mov cx, word [esp + 0x14]
mov word [esp + 0x26], cx
mov word [esp + 0x24], bx
mov dword [esp + 0x58], 0
mov dword [esp + 0x20], 2
mov edx, dword [0xa255a0]
push 2
push 0
lea ecx, [edx + 0x218]
call fcn.0062fcf0
sub eax, 0
je 0x5601c3
dec eax
je 0x5601b9
dec eax
jne 0x5601cb
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x58], eax
jmp 0x5601cb
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
jmp 0x5601cb
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x58], edx
push 0x1a8
call fcn.0076d5a7
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x5602a6
mov eax, dword [0xa255a0]
push 8
push 0xfffffffffffffff8
lea ecx, [eax + 0x218]
call fcn.0062fcf0
mov ecx, dword [0xa255a0]
push 0xc
push 0xfffffffffffffff4
add ecx, 0x218
mov edi, eax
call fcn.0062fcf0
movsx ecx, word [esp + 0x14]
movsx edx, bx
mov esi, ecx
shl esi, 9
add esi, edx
js 0x560237
cmp esi, 0x40000
jge 0x560237
mov ebx, dword [0x81a938]
mov esi, dword [ebx + esi*4]
mov ebx, dword [esp + 0x18]
test esi, esi
jne 0x560246
mov esi, dword [esp + 0x24]
mov dword [0xa57614], esi
mov esi, 0xa575f0
movsx esi, byte [esi + 0x11b]
imul esi, dword [0xa57828]
shl edx, 8
shl ecx, 8
add edx, 0x80
add ecx, 0x80
add eax, edx
mov edx, dword [0xa255a0]
add ecx, edi
push 2
mov dword [esp + 0x50], ecx
push 0
lea ecx, [edx + 0x218]
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], esi
call fcn.0062fcf0
mov ecx, dword [esp + 0x58]
push 0
push 0x600
push 1
push eax
lea eax, [esp + 0x58]
push eax
push ecx
mov ecx, ebp
call fcn.00420110
mov eax, dword [esp + 0x20]
dec eax
mov dword [esp + 0x20], eax
jne 0x56018f
mov edx, dword [esp + 0x10]
inc ebx
mov dword [esp + 0x18], ebx
lea eax, [edx + 5]
cmp ebx, eax
jl 0x56017a
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
inc ecx
cmp ecx, edx
mov dword [esp + 0x14], ecx
jl 0x560160
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 4
lea esi, [ebp + 1]
cmp eax, esi
jne 0x5609d0
mov dl, byte [ecx + 0x11a]
mov eax, edx
and eax, 0xff
and eax, reloc.WSOCK32.dll_closesocket
jns 0x56030c
dec eax
or eax, 0xfffffffc
inc eax
mov di, word [ecx + 0x26]
push 0
neg eax
add ax, word [ecx + 0x24]
mov ecx, dword [0xa288f4]
shr dl, 2
mov ecx, dword [ecx + esi*4]
mov bx, ax
movzx dx, dl
neg edx
add di, dx
mov edx, dword [ecx]
mov word [esp + 0x34], bx
mov word [esp + 0x36], di
call dword [edx + 0x8c]
mov esi, eax
lea ecx, [esp + 0x48]
movsx eax, bx
mov dword [esp + 0x58], eax
push ecx
shl eax, 8
add eax, 0x80
mov ecx, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x4c], eax
movsx eax, di
mov dword [esp + 0x30], eax
mov dword [esp + 0x54], 0
shl eax, 8
add eax, 0x80
mov dword [esp + 0x2c], eax
mov dword [esp + 0x50], eax
mov eax, dword [esi]
call dword [eax + 0x19c]
mov edx, dword [esi]
push 0
mov ecx, esi
mov byte [esi + 0x76], 0
mov byte [esi + 0x74], 1
call dword [edx + 0x11c]
test esi, esi
je 0x5603aa
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x20]
mov ecx, dword [0xa288f4]
mov edx, dword [0xa55c50]
xor edi, edi
mov ecx, dword [ecx + edx*4 + 0xc]
push edi
mov eax, dword [ecx]
call dword [eax + 0x8c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0x48]
mov dword [esp + 0x4c], edx
mov edx, dword [eax]
push edi
push ecx
mov ecx, eax
mov dword [esp + 0x58], edi
call dword [edx + 0xd4]
mov edx, dword [0xa288f4]
mov eax, dword [0xa55c50]
push edi
mov ecx, dword [edx + eax*4 + 8]
mov edx, dword [ecx]
call dword [edx + 0x8c]
mov ecx, dword [esp + 0x32]
mov edx, dword [esp + 0x58]
add ecx, 3
push edi
movsx ecx, cx
shl ecx, 8
shl edx, 8
add ecx, 0x80
add edx, 0x80
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], edx
mov edx, dword [eax]
push ecx
mov ecx, eax
mov dword [esp + 0x58], edi
call dword [edx + 0xd4]
mov ebp, dword [esp + 0x1c]
mov ecx, ebp
call fcn.0054bf10
mov edx, dword [0xa55d10]
mov eax, dword [0xa288f4]
mov ebx, dword [eax + edx*4 + 4]
mov ecx, ebx
mov edx, dword [ebx]
call dword [edx + 0x9c]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x2b8]
cmp eax, edi
jle 0x560536
mov eax, dword [ebx + 0x2b4]
xor esi, esi
test eax, eax
jle 0x560527
mov ecx, dword [esp + 0x32]
add ecx, edi
mov word [esp + 0x26], cx
mov edx, dword [esp + 0x30]
imul eax, edi
lea ecx, [esi + edx]
add eax, esi
mov word [esp + 0x24], cx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
mov edx, dword [ecx + eax*4 + 0x10]
test edx, edx
je 0x560518
lea edx, [esp + 0x14]
push 1
push edx
mov ecx, ebp
call fcn.00557300
test al, al
je 0x560518
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
call fcn.0054cdf0
mov edx, dword [ebp + 0x6c]
lea ecx, [eax + eax*4]
mov word [edx + ecx*2], 0
mov ecx, dword [esp + 0x14]
movsx eax, word [esp + 0x16]
movsx edx, cx
shl eax, 9
add eax, edx
js 0x560504
cmp eax, 0x40000
jge 0x560504
mov edx, dword [0x81a938]
mov eax, dword [edx + eax*4]
test eax, eax
jne 0x56050f
mov dword [0xa57614], ecx
mov eax, 0xa575f0
push 0xffffffffffffffff
mov ecx, eax
call fcn.00472140
mov eax, dword [ebx + 0x2b4]
inc esi
cmp esi, eax
jl 0x56048e
mov eax, dword [ebx + 0x2b8]
inc edi
cmp edi, eax
jl 0x560473
mov eax, dword [ebx + 0x2b8]
xor edi, edi
test eax, eax
jle 0x5605e9
mov eax, dword [ebx + 0x2b4]
xor esi, esi
test eax, eax
jle 0x5605da
mov ecx, dword [esp + 0x32]
add ecx, edi
mov word [esp + 0x26], cx
mov edx, dword [esp + 0x30]
imul eax, edi
lea ecx, [esi + edx]
add eax, esi
mov word [esp + 0x24], cx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov edx, dword [ecx + eax*4 + 0x10]
test edx, edx
je 0x5605cf
lea edx, [esp + 0x18]
push 1
push edx
mov ecx, ebp
call fcn.00557300
test al, al
je 0x5605cf
lea eax, [esp + 0x18]
mov ecx, ebp
push eax
call fcn.0054ce30
test eax, eax
jge 0x5605ac
xor eax, eax
jmp 0x5605b6
mov ecx, dword [ebp + 0x68]
cmp eax, ecx
jl 0x5605b6
lea eax, [ecx - 1]
mov edx, dword [ebp + 0x6c]
lea ecx, [eax + eax*4]
cmp word [edx + ecx*2], 0
jne 0x5605cf
lea eax, [esp + 0x18]
mov ecx, ebp
push eax
call fcn.00562fe0
mov eax, dword [ebx + 0x2b4]
inc esi
cmp esi, eax
jl 0x560561
mov eax, dword [ebx + 0x2b8]
inc edi
cmp edi, eax
jl 0x560546
mov eax, dword [ebx + 0x2b8]
xor edi, edi
test eax, eax
jle 0x5606b1
mov eax, dword [ebx + 0x2b4]
xor esi, esi
test eax, eax
jle 0x5606a2
mov ecx, dword [esp + 0x32]
add ecx, edi
mov word [esp + 0x26], cx
mov edx, dword [esp + 0x30]
imul eax, edi
lea ecx, [esi + edx]
add eax, esi
mov word [esp + 0x24], cx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
mov edx, dword [ecx + eax*4 + 0x10]
test edx, edx
je 0x560693
lea edx, [esp + 0x14]
push 1
push edx
mov ecx, ebp
call fcn.00557300
test al, al
je 0x560693
movsx eax, word [esp + 0x16]
mov ecx, dword [esp + 0x14]
movsx edx, cx
shl eax, 9
add eax, edx
js 0x560672
cmp eax, 0x40000
jge 0x560672
mov edx, dword [0x81a938]
mov eax, dword [edx + eax*4]
test eax, eax
jne 0x56067d
mov dword [0xa57614], ecx
mov eax, 0xa575f0
mov ecx, eax
call fcn.006cd0a0
lea eax, [esp + 0x14]
mov ecx, 0x81a800
push eax
call fcn.00628aa0
mov eax, dword [ebx + 0x2b4]
inc esi
cmp esi, eax
jl 0x560614
mov eax, dword [ebx + 0x2b8]
inc edi
cmp edi, eax
jl 0x5605f9
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x58]
shl eax, 9
add eax, ecx
js 0x5606d4
cmp eax, 0x40000
jge 0x5606d4
mov ecx, dword [0x81a938]
mov eax, dword [ecx + eax*4]
test eax, eax
jne 0x5606e3
mov edx, dword [esp + 0x30]
mov eax, 0xa575f0
mov dword [0xa57614], edx
movsx eax, byte [eax + 0x11b]
imul eax, dword [0xa57828]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], ecx
lea eax, [esp + 0x40]
lea ecx, [esp + 0x48]
push eax
push ecx
mov ecx, dword [0x821c8c]
mov dword [esp + 0x54], edx
call fcn.00697ec0
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x32]
lea ecx, [edx + 3]
lea edx, [eax + 5]
movsx eax, dx
movsx esi, cx
shl eax, 9
add eax, esi
mov word [esp + 0x28], cx
mov word [esp + 0x2a], dx
js 0x560753
cmp eax, 0x40000
jge 0x560753
mov esi, dword [0x81a938]
mov eax, dword [esi + eax*4]
test eax, eax
jne 0x560761
mov eax, dword [esp + 0x28]
mov dword [0xa57614], eax
mov eax, 0xa575f0
movsx eax, byte [eax + 0x11b]
imul eax, dword [0xa57828]
movsx ecx, cx
shl ecx, 8
movsx edx, dx
add ecx, 0x80
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], ecx
lea eax, [esp + 0x38]
shl edx, 8
lea ecx, [esp + 0x48]
push eax
add edx, 0x80
push ecx
mov ecx, dword [0x821c8c]
mov dword [esp + 0x54], edx
call fcn.00697ec0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
sub eax, ecx
lea edx, [ecx - 0x78]
mov ecx, dword [esp + 0x3c]
push 0
lea edi, [esi - 0x3c]
sub esp, 0x10
sub ecx, esi
mov esi, esp
add eax, 0xf0
add ecx, 0x78
mov dword [esi], edx
mov dword [esi + 4], edi
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov ecx, dword [0x821c8c]
call fcn.00698510
mov ecx, str.XGRYMED1
call fcn.00425640
mov edx, dword [0x84e4f4]
mov ecx, str.XGRYMED2
lea eax, [edx + eax*4]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
call fcn.00425640
mov ecx, dword [0x84e4f4]
mov edx, dword [ecx + eax*4]
lea eax, [ecx + eax*4]
mov ecx, str.XGRYSML1
mov dword [esp + 0x24], edx
call fcn.00425640
mov ecx, dword [0x84e4f4]
mov edx, dword [ecx + eax*4]
lea eax, [ecx + eax*4]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], eax
lea ecx, [eax + 5]
cmp eax, ecx
mov dword [esp + 0x1c], ecx
jge 0x5609d0
mov eax, dword [esp + 0x58]
add eax, 3
mov ebx, dword [esp + 0x58]
cmp ebx, eax
mov dword [esp + 0x18], ebx
jge 0x5609bb
mov cx, word [esp + 0x10]
mov word [esp + 0x2e], cx
mov word [esp + 0x2c], bx
mov dword [esp + 0x14], 0
mov dword [esp + 0x28], 2
mov edx, dword [0xa255a0]
push 2
push 0
lea ecx, [edx + 0x218]
call fcn.0062fcf0
sub eax, 0
je 0x5608b5
dec eax
je 0x5608ab
dec eax
jne 0x5608bd
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], eax
jmp 0x5608bd
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
jmp 0x5608bd
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], edx
push 0x1a8
call fcn.0076d5a7
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x560998
mov eax, dword [0xa255a0]
push 8
push 0xfffffffffffffff8
lea ecx, [eax + 0x218]
call fcn.0062fcf0
mov ecx, dword [0xa255a0]
push 0xc
push 0xfffffffffffffff4
add ecx, 0x218
mov edi, eax
call fcn.0062fcf0
movsx ecx, word [esp + 0x10]
movsx edx, bx
mov esi, ecx
shl esi, 9
add esi, edx
js 0x560929
cmp esi, 0x40000
jge 0x560929
mov ebx, dword [0x81a938]
mov esi, dword [ebx + esi*4]
mov ebx, dword [esp + 0x18]
test esi, esi
jne 0x560938
mov esi, dword [esp + 0x2c]
mov dword [0xa57614], esi
mov esi, 0xa575f0
movsx esi, byte [esi + 0x11b]
imul esi, dword [0xa57828]
shl edx, 8
shl ecx, 8
add edx, 0x80
add ecx, 0x80
add eax, edx
mov edx, dword [0xa255a0]
add ecx, edi
push 2
mov dword [esp + 0x50], ecx
push 0
lea ecx, [edx + 0x218]
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], esi
call fcn.0062fcf0
mov ecx, dword [esp + 0x14]
push 0
push 0x600
push 1
push eax
lea eax, [esp + 0x58]
push eax
push ecx
mov ecx, ebp
call fcn.00420110
mov eax, dword [esp + 0x28]
dec eax
mov dword [esp + 0x28], eax
jne 0x560881
mov edx, dword [esp + 0x58]
inc ebx
mov dword [esp + 0x18], ebx
lea eax, [edx + 3]
cmp ebx, eax
jl 0x56086c
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
inc ecx
cmp ecx, edx
mov dword [esp + 0x10], ecx
jl 0x560852
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 4