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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x5e4264
push eax
mov eax, 0x2224
mov dword fs:[0], esp
call fcn.005bd2d0
push ebx
push ebp
push esi
mov ebx, ecx
push edi
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0xfc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x20]
mov dword [esp + 0x10], ebx
stosb byte es:[edi], al
call fcn.005b74c0
mov eax, dword [ebx + 0x14]
mov ebp, dword [ebx + 0x10]
cmp eax, eax
mov dword [esp + 0x223c], 0
mov edx, eax
je 0x5afd81
mov esi, edx
mov edi, ebp
add edx, 0x1c
mov ecx, 7
add ebp, 0x1c
cmp edx, eax
rep movsd dword es:[edi], dword [esi]
jne 0x5afd6c
mov eax, dword [ebx + 0x14]
lea esi, [ebx + 0xc]
push eax
push ebp
mov ecx, esi
call fcn.005b0ee0
mov dword [esi + 8], ebp
mov eax, dword [ebx + 4]
push eax
push 2
lea ecx, [esp + 0x28]
call fcn.005b7530
test eax, eax
je 0x5b0b0c
lea ecx, [esp + 0x44c]
call fcn.005806a0
cmp word [esp + 0x28], 0
mov byte [esp + 0x223c], 1
mov dword [esp + 0x14], 0
jbe 0x5b0af8
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x24]
call fcn.005b7520
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebx + 8]
and eax, 0xffff
push 0
lea edx, [eax*8]
sub edx, eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + edx*4 + 0x14]
push eax
call fcn.005764e0
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
and eax, 0xffff
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [edx + ecx*4]
cmp eax, 0xffffffff
je 0x5b0cb3
mov ecx, dword [ebx + 4]
push ecx
push eax
lea ecx, [esp + 0x454]
call fcn.00580c40
cmp eax, 0xffffffff
mov dword [esp + 0x64], eax
je 0x5b0cb3
xor ebp, ebp
mov word [ebx + 0x12c], 0xfffe
test eax, eax
mov dword [esp + 0x1c], ebp
jle 0x5b0aca
push ebp
lea ecx, [esp + 0x450]
call fcn.00580d80
mov ecx, 0x3f
lea esi, [esp + 0xfc]
lea edi, [ebx + 0x2c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
test ebp, ebp
movsb byte es:[edi], byte [esi]
jne 0x5afe90
mov dx, word [esp + 0x484]
mov word [ebx + 0x12c], dx
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0xfc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x20]
stosb byte es:[edi], al
call fcn.005b7660
dec eax
cmp eax, 0xe
ja case.0x5afeb6.2
jmp dword [eax*4 + 0x5b0ea4]
test ebp, ebp
jne 0x5afee8
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x5afee8
lea eax, [esp + 0xfc]
push 1
lea ecx, [esp + 0x450]
push eax
push ecx
mov ecx, dword [ebx + 8]
call fcn.00576f00
jmp case.0x5afeb6.2
mov ecx, dword [ebx + 8]
push 0
push 0
push 3
push 0
push 0
lea edx, [esp + 0x110]
push 1
lea eax, [esp + 0x464]
push edx
push eax
call fcn.00579f40
jmp case.0x5afeb6.2
test ebp, ebp
jne 0x5aff43
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x5aff43
lea ecx, [esp + 0xfc]
push ebp
lea edx, [esp + 0x450]
push ecx
mov ecx, dword [ebx + 8]
push edx
call fcn.00576f00
test eax, eax
je 0x5b0cb3
jmp case.0x5afeb6.2
push 0
push 0
push 3
push 0
push 0
lea eax, [esp + 0x110]
push 0
lea ecx, [esp + 0x464]
push eax
push ecx
mov ecx, dword [ebx + 8]
call fcn.00579f40
cmp eax, 1
jne 0x5b0cb3
jmp case.0x5afeb6.2
test ebp, ebp
jne 0x5affa7
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x5affa7
mov ecx, dword [ebx + 8]
lea edx, [esp + 0xfc]
push ebp
lea eax, [esp + 0x450]
push edx
push eax
call fcn.00576f00
test eax, eax
je 0x5b0ab9
jmp case.0x5afeb6.2
push 0
push 0
push 3
push 0
push 0
lea ecx, [esp + 0x110]
push 0
lea edx, [esp + 0x464]
push ecx
mov ecx, dword [ebx + 8]
push edx
call fcn.00579f40
cmp eax, 1
jne 0x5b0ab9
jmp case.0x5afeb6.2
test ebp, ebp
jne 0x5b0008
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x5b0008
lea eax, [esp + 0xfc]
push ebp
lea ecx, [esp + 0x450]
push eax
push ecx
mov ecx, dword [ebx + 8]
call fcn.00576f00
test eax, eax
je 0x5b0cb3
jmp 0x5b006a
mov eax, dword [esp + 0x484]
xor edx, edx
mov dx, word [ebx + 0x12c]
cmp edx, eax
jb 0x5b0036
test ebp, ebp
je 0x5b0036
lea esi, [ebx + 0x2c]
mov ecx, 0x3f
lea edi, [esp + 0xfc]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x5b006a
push 0
push 0
push 3
mov word [ebx + 0x12c], ax
push 0
push 0
lea eax, [esp + 0x110]
push 0
lea ecx, [esp + 0x464]
push eax
push ecx
mov ecx, dword [ebx + 8]
call fcn.00579f40
cmp eax, 1
jne 0x5b0cb3
xor ebp, ebp
push 0xffffffffffffffff
lea edx, [esp + 0x100]
push ebp
push edx
lea ecx, [esp + 0x458]
call fcn.005808b0
lea ecx, [esp + 0x20]
call fcn.005b7600
cmp eax, 0xffffffff
je 0x5b0205
lea ecx, [esp + 0x78]
call fcn.005b1cd0
mov eax, dword [ebx + 4]
lea ecx, [esp + 0x78]
push eax
mov byte [esp + 0x2240], 2
call fcn.00592d40
test eax, eax
je 0x5b0ae7
mov cl, byte [esp + 0x1b]
push ebp
mov byte [esp + 0x54], cl
lea ecx, [esp + 0x54]
call fcn.00401850
mov ecx, 0x42
lea esi, [esp + 0x4d0]
lea edi, [esp + 0x212c]
lea edx, [esp + 0x50]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x42
lea esi, [esp + 0x4d0]
lea edi, [esp + 0x17ec]
push edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x24]
mov byte [esp + 0x2240], 3
call fcn.005b7600
push eax
mov eax, dword [esp + 0x2234]
and eax, 0xffff
lea ecx, [esp + 0x17f4]
shl eax, 3
push eax
push ecx
lea ecx, [esp + 0x88]
call fcn.005b1db0
mov eax, dword [esp + 0x54]
cmp eax, ebp
jne 0x5b013f
mov eax, 0x5e514c
push eax
lea edx, [esp + 0x200]
push 0x60af00
push edx
call fcn.005bcf3d
mov eax, dword [esp + 0x64]
push eax
call fcn.005bcf2f
mov esi, eax
add esp, 0x10
cmp esi, ebp
je 0x5b0b3b
lea ecx, [esp + 0x1fc]
push esi
push ecx
call fcn.005afbb0
add esp, 8
lea ecx, [esp + 0x60]
push eax
push esi
call fcn.00558100
lea edx, [esp + 0x60]
lea ecx, [esp + 0x44c]
push edx
mov byte [esp + 0x2240], 4
call fcn.00580830
push esi
call fcn.005bc500
mov eax, dword [ebx + 8]
add esp, 4
lea ecx, [esp + 0x60]
mov byte [esp + 0x223c], 3
mov dword [eax + 0xcc], ebp
call fcn.005581a0
mov eax, dword [esp + 0x54]
cmp eax, ebp
je 0x5b01e6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5b01dd
cmp al, 0xff
je 0x5b01dd
dec al
mov byte [ecx], al
jmp 0x5b01e6
push ecx
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x78]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov byte [esp + 0x223c], 1
call fcn.005b1d70
jmp 0x5b0212
mov eax, dword [ebx + 8]
mov dword [eax + 0xcc], 1
mov ecx, 0x42
lea esi, [esp + 0x4d0]
lea edi, [esp + 0x2024]
lea eax, [esp + 0x2024]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 8]
push eax
call fcn.00576420
lea ecx, [esp + 0x344]
call fcn.005b17d0
mov ecx, dword [ebx + 4]
mov byte [esp + 0x223c], 5
push ecx
lea ecx, [esp + 0x348]
call fcn.00592d40
mov ecx, 0x42
lea esi, [esp + 0x4d0]
lea edi, [esp + 0x19fc]
lea edx, [esp + 0xd8]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x42
lea esi, [esp + 0x4d0]
lea edi, [esp + 0x15dc]
push edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x450]
call fcn.00581370
push eax
lea ecx, [esp + 0x454]
call fcn.00581360
push eax
mov eax, dword [esp + 0x1b08]
and eax, 0xffff
lea ecx, [esp + 0x15e8]
push eax
push ecx
lea ecx, [esp + 0x358]
call fcn.005b19f0
test eax, eax
jne 0x5b032e
lea edx, [esp + 0xb8]
lea ecx, [esp + 0x20]
push edx
call fcn.005b7620
mov eax, dword [eax + 8]
xor ecx, ecx
cmp eax, ebp
mov eax, dword [esp + 0xbc]
setne cl
cmp eax, ebp
mov esi, ecx
je 0x5b0311
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5b0308
cmp al, 0xff
je 0x5b0308
dec al
mov byte [ecx], al
jmp 0x5b0311
push ecx
call fcn.005bc500
add esp, 4
cmp esi, ebp
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xc0], ebp
mov dword [esp + 0xc4], ebp
jne 0x5b0bad
lea ecx, [esp + 0x344]
mov byte [esp + 0x223c], 1
call fcn.005b1830
jmp case.0x5afeb6.2
test ebp, ebp
jne 0x5b0379
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x5b0379
mov ecx, dword [ebx + 8]
lea edx, [esp + 0xfc]
push ebp
lea eax, [esp + 0x450]
push edx
push eax
call fcn.00576f00
test eax, eax
jne 0x5b0af8
jmp 0x5b0ab9
push 0
push 0
push 3
push 0
push 0
lea ecx, [esp + 0x110]
push 0
lea edx, [esp + 0x464]
push ecx
mov ecx, dword [ebx + 8]
push edx
call fcn.00579f40
cmp eax, 1
je 0x5b0af8
jmp 0x5b0ab9
test ebp, ebp
jne 0x5b03da
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x5b03da
lea eax, [esp + 0xfc]
push ebp
lea ecx, [esp + 0x450]
push eax
push ecx
mov ecx, dword [ebx + 8]
call fcn.00576f00
test eax, eax
je 0x5b0ab9
jmp 0x5b043c
mov eax, dword [esp + 0x484]
xor edx, edx
mov dx, word [ebx + 0x12c]
cmp edx, eax
jb 0x5b0408
test ebp, ebp
je 0x5b0408
lea esi, [ebx + 0x2c]
mov ecx, 0x3f
lea edi, [esp + 0xfc]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x5b043c
push 0
push 0
push 3
mov word [ebx + 0x12c], ax
push 0
push 0
lea eax, [esp + 0x110]
push 0
lea ecx, [esp + 0x464]
push eax
push ecx
mov ecx, dword [ebx + 8]
call fcn.00579f40
cmp eax, 1
jne 0x5b0cb3
xor ebp, ebp
push 0xffffffffffffffff
lea edx, [esp + 0x100]
push ebp
push edx
lea ecx, [esp + 0x458]
call fcn.005808b0
lea ecx, [esp + 0x20]
call fcn.005b7600
cmp eax, 0xffffffff
je 0x5b05e2
lea ecx, [esp + 0x88]
call fcn.005b1cd0
mov eax, dword [ebx + 4]
lea ecx, [esp + 0x88]
push eax
mov byte [esp + 0x2240], 7
call fcn.00592d40
test eax, eax
je 0x5b0c5a
mov cl, byte [esp + 0x1b]
mov dword [esp + 0x44], ebp
mov byte [esp + 0x40], cl
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov ecx, 0x42
lea esi, [esp + 0x4d0]
lea edi, [esp + 0x1c0c]
lea edx, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x42
lea esi, [esp + 0x4d0]
lea edi, [esp + 0x16e4]
push edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x24]
mov byte [esp + 0x2240], 8
call fcn.005b7600
push eax
mov eax, dword [esp + 0x1d14]
and eax, 0xffff
lea ecx, [esp + 0x16ec]
shl eax, 3
push eax
push ecx
lea ecx, [esp + 0x98]
call fcn.005b1db0
mov eax, dword [esp + 0x44]
cmp eax, ebp
jne 0x5b0519
mov eax, 0x5e514c
push eax
lea edx, [esp + 0x220]
push 0x60af00
push edx
call fcn.005bcf3d
mov eax, dword [esp + 0x54]
push eax
call fcn.005bcf2f
mov esi, eax
add esp, 0x10
cmp esi, ebp
je 0x5b0c6e
lea ecx, [esp + 0x21c]
push esi
push ecx
call fcn.005afbb0
add esp, 8
lea ecx, [esp + 0x68]
push eax
push esi
call fcn.00558100
lea edx, [esp + 0x68]
lea ecx, [esp + 0x44c]
push edx
mov byte [esp + 0x2240], 9
call fcn.00580830
push esi
call fcn.005bc500
mov eax, dword [ebx + 8]
add esp, 4
lea ecx, [esp + 0x68]
mov byte [esp + 0x223c], 8
mov dword [eax + 0xcc], ebp
call fcn.005581a0
mov eax, dword [esp + 0x44]
cmp eax, ebp
je 0x5b05c0
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5b05b7
cmp al, 0xff
je 0x5b05b7
dec al
mov byte [ecx], al
jmp 0x5b05c0
push ecx
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x88]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov byte [esp + 0x223c], 1
call fcn.005b1d70
jmp 0x5b05ef
mov eax, dword [ebx + 8]
mov dword [eax + 0xcc], 1
mov ecx, 0x42
lea esi, [esp + 0x4d0]
lea edi, [esp + 0x18f4]
lea eax, [esp + 0x18f4]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 8]
push eax
call fcn.00576420
lea ecx, [esp + 0x23c]
call fcn.005b17d0
mov ecx, dword [ebx + 4]
mov byte [esp + 0x223c], 0xa
push ecx
lea ecx, [esp + 0x240]
call fcn.00592d40
mov ecx, 0x42
lea esi, [esp + 0x4d0]
lea edi, [esp + 0x1b04]
lea edx, [esp + 0xdc]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x42
lea esi, [esp + 0x4d0]
lea edi, [esp + 0x1d14]
push edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x450]
call fcn.00581370
push eax
lea ecx, [esp + 0x454]
call fcn.00581360
push eax
mov eax, dword [esp + 0x1c10]
and eax, 0xffff
lea ecx, [esp + 0x1d20]
push eax
push ecx
lea ecx, [esp + 0x250]
call fcn.005b19f0
test eax, eax
jne 0x5b0709
lea edx, [esp + 0xc8]
lea ecx, [esp + 0x20]
push edx
call fcn.005b7620
mov eax, dword [eax + 8]
xor ecx, ecx
cmp eax, ebp
setne cl
mov esi, ecx
mov ecx, dword [esp + 0xcc]
cmp ecx, ebp
je 0x5b06ec
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x5b06e3
cmp al, 0xff
je 0x5b06e3
dec al
mov byte [ecx], al
jmp 0x5b06ec
push ecx
call fcn.005bc500
add esp, 4
cmp esi, ebp
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd0], ebp
mov dword [esp + 0xd4], ebp
jne 0x5b0ce3
lea ecx, [esp + 0x23c]
mov byte [esp + 0x223c], 1
call fcn.005b1830
jmp case.0x5afeb6.2
lea ecx, [esp + 0x44c]
call fcn.00581360
mov ecx, dword [ebx + 8]
push 0x11
mov esi, eax
call fcn.0057efc0
mov ecx, dword [ebx + 8]
push 0
push 0
push 3
push 0
push 0
lea edx, [esp + 0x110]
push 0
lea eax, [esp + 0x464]
push edx
push eax
call fcn.00579f40
cmp eax, 1
jne 0x5b0cb3
lea ecx, [esp + 0x44c]
call fcn.0058a1a0
movzx cx, byte [esp + eax + 0xfc]
cmp cx, si
jne 0x5b0cb3
jmp case.0x5afeb6.2
mov ecx, dword [ebx + 8]
lea edx, [esp + 0x1e1c]
push edx
call fcn.00576050
test eax, eax
je 0x5b0cb3
push 0xffffffffffffffff
lea eax, [esp + 0x1e20]
push 0
push eax
lea ecx, [esp + 0x458]
call fcn.005808b0
mov eax, dword [ebx + 8]
mov ecx, 0x42
lea esi, [esp + 0x4d0]
lea edi, [esp + 0x1f1c]
mov dword [eax + 0xcc], 1
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1f1c]
push ecx
mov ecx, dword [ebx + 8]
call fcn.00576420
mov eax, dword [esp + 0x3c]
mov ecx, 7
and eax, 0xffff
lea edi, [esp + 0xe0]
lea edx, [eax*8]
sub edx, eax
mov eax, dword [esp + 0x34]
lea esi, [eax + edx*4]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x14]
lea eax, [ecx + 0xc]
mov ebx, ebp
mov ecx, dword [eax + 0xc]
mov eax, 0x92492493
sub ecx, ebp
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 1
jae 0x5b0983
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x10]
lea edi, [ecx + 0xc]
test esi, esi
je 0x5b0869
mov ecx, ebp
mov eax, 0x92492493
sub ecx, esi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 1
mov ecx, edx
ja 0x5b086e
mov ecx, 1
test esi, esi
jne 0x5b0876
xor edx, edx
jmp 0x5b088b
sub ebp, esi
mov eax, 0x92492493
imul ebp
add edx, ebp
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
add edx, ecx
test edx, edx
mov dword [esp + 0x6c], edx
mov eax, edx
jge 0x5b0899
xor eax, eax
lea ecx, [eax*8]
sub ecx, eax
shl ecx, 2
push ecx
call fcn.005bcf2f
mov edx, dword [edi + 4]
add esp, 4
cmp edx, ebx
mov dword [esp + 0x70], eax
je 0x5b08d2
test eax, eax
je 0x5b08c8
mov ecx, 7
mov esi, edx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
add edx, 0x1c
add eax, 0x1c
cmp edx, ebx
jne 0x5b08b9
test eax, eax
je 0x5b08e6
mov ecx, 7
lea esi, [esp + 0xe0]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10]
lea edx, [eax + 0x1c]
add ecx, 0xc
mov ebp, dword [ecx + 8]
cmp ebx, ebp
je 0x5b0918
mov ecx, edx
sub ecx, eax
lea ebx, [ecx + ebx - 0x1c]
test edx, edx
je 0x5b090e
mov ecx, 7
mov esi, ebx
mov edi, edx
rep movsd dword es:[edi], dword [esi]
add ebx, 0x1c
add edx, 0x1c
cmp ebx, ebp
jne 0x5b08ff
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
lea esi, [edx + 0xc]
push eax
mov dword [esp + 0x78], eax
call fcn.005bc500
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
add esp, 4
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [esi + 4]
test eax, eax
lea edx, [edi + ecx*4]
mov dword [esi + 0xc], edx
jne 0x5b0951
xor edx, edx
jmp 0x5b0969
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [edx + 1]
mov dword [esi + 4], edi
lea ecx, [eax*8]
sub ecx, eax
lea edx, [edi + ecx*4]
mov dword [esi + 8], edx
jmp 0x5b0ab1
mov ecx, ebp
mov eax, 0x92492493
sub ecx, ebx
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 1
jae 0x5b0a3a
cmp ebx, ebp
lea eax, [ebx + 0x1c]
je 0x5b09c6
lea edx, [eax - 0x1c]
test eax, eax
je 0x5b09bc
mov ecx, 7
mov esi, edx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
add edx, 0x1c
add eax, 0x1c
cmp edx, ebp
jne 0x5b09ad
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x14]
lea eax, [ecx + 0xc]
mov ecx, esi
mov eax, 0x92492493
sub ecx, ebx
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 1
sub eax, edx
mov edx, esi
je 0x5b0a0c
test edx, edx
je 0x5b0a06
mov ecx, 7
lea esi, [esp + 0xe0]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
add edx, 0x1c
dec eax
jne 0x5b09f2
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0xc]
mov eax, dword [ecx + 0x14]
cmp ebx, eax
je 0x5b0a31
mov edi, ebx
add ebx, 0x1c
mov ecx, 7
lea esi, [esp + 0xe0]
cmp ebx, eax
rep movsd dword es:[edi], dword [esi]
jne 0x5b0a1a
mov edx, dword [esp + 0x10]
lea eax, [edx + 0xc]
jmp 0x5b0aad
lea eax, [ebp - 0x1c]
mov edx, ebp
cmp eax, ebp
mov dword [esp + 0x74], eax
je 0x5b0a60
test edx, edx
je 0x5b0a56
mov ecx, 7
mov esi, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
add eax, 0x1c
add edx, 0x1c
cmp eax, ebp
jne 0x5b0a47
mov eax, dword [esp + 0x10]
add eax, 0xc
mov edx, dword [eax + 8]
lea eax, [edx - 0x1c]
cmp ebx, eax
je 0x5b0a86
sub eax, 0x1c
sub edx, 0x1c
mov ecx, 7
mov esi, eax
mov edi, edx
cmp eax, ebx
rep movsd dword es:[edi], dword [esi]
jne 0x5b0a71
lea edx, [ebx + 0x1c]
mov eax, ebx
cmp ebx, edx
je 0x5b0aa6
mov edi, eax
add eax, 0x1c
mov ecx, 7
lea esi, [esp + 0xe0]
cmp eax, edx
rep movsd dword es:[edi], dword [esi]
jne 0x5b0a8f
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0xc]
add dword [eax + 8], 0x1c
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x64]
inc ebp
cmp ebp, eax
mov dword [esp + 0x1c], ebp
jl 0x5afe5c
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
inc eax
and edx, 0xffff
cmp eax, edx
mov dword [esp + 0x14], eax
jl 0x5afdd2
jmp 0x5b0af8
mov byte [esp + 0x223c], 1
lea ecx, [esp + 0x78]
call fcn.005b1d70
lea ecx, [esp + 0x44c]
mov byte [esp + 0x223c], 0
call fcn.005807b0
lea ecx, [esp + 0x20]
mov dword [esp + 0x223c], 0xffffffff
call fcn.005b7500
xor eax, eax
mov ecx, dword [esp + 0x2234]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x2230
ret
mov eax, dword [esp + 0x54]
cmp eax, ebp
je 0x5b0b60
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5b0b57
cmp al, 0xff
je 0x5b0b57
dec al
mov byte [ecx], al
jmp 0x5b0b60
push ecx
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x78]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov byte [esp + 0x223c], 1
call fcn.005b1d70
lea ecx, [esp + 0x44c]
mov byte [esp + 0x223c], 0
call fcn.005807b0
lea ecx, [esp + 0x20]
mov dword [esp + 0x223c], 0xffffffff
call fcn.005b7500
or eax, 0xffffffff
jmp 0x5b0b22
lea eax, [esp + 0xa8]
lea ecx, [esp + 0x20]
push eax
call fcn.005b7620
mov ecx, dword [0x5e5150]
mov byte [esp + 0x223c], 6
push ecx
push ebp
push eax
lea ecx, [ebx + 0x1c]
call fcn.004120f0
mov eax, dword [esp + 0xac]
cmp eax, ebp
je 0x5b0bff
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5b0bf6
cmp al, 0xff
je 0x5b0bf6
dec al
mov byte [ecx], al
jmp 0x5b0bff
push ecx
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x344]
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xb4], ebp
mov byte [esp + 0x223c], 1
call fcn.005b1830
lea ecx, [esp + 0x44c]
mov byte [esp + 0x223c], 0
call fcn.005807b0
lea ecx, [esp + 0x20]
mov dword [esp + 0x223c], 0xffffffff
call fcn.005b7500
mov eax, 1
jmp 0x5b0b22
mov byte [esp + 0x223c], 1
lea ecx, [esp + 0x88]
jmp 0x5b0af3
mov eax, dword [esp + 0x44]
cmp eax, ebp
je 0x5b0c93
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5b0c8a
cmp al, 0xff
je 0x5b0c8a
dec al
mov byte [ecx], al
jmp 0x5b0c93
push ecx
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x88]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov byte [esp + 0x223c], 1
call fcn.005b1d70
lea ecx, [esp + 0x44c]
mov byte [esp + 0x223c], 0
call fcn.005807b0
lea ecx, [esp + 0x20]
mov dword [esp + 0x223c], 0xffffffff
call fcn.005b7500
or eax, 0xffffffff
jmp 0x5b0b22
lea edx, [esp + 0x98]
lea ecx, [esp + 0x20]
push edx
call fcn.005b7620
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x5e5150]
mov ebp, ecx
add ebx, 0x1c
cmp eax, ebp
mov byte [esp + 0x223c], 0xb
jae 0x5b0d11
mov ebp, eax
cmp ebx, esi
jne 0x5b0d7b
mov esi, eax
mov eax, dword [ebx + 8]
cmp eax, ebp
jae 0x5b0d23
call fcn.005bc820
mov ecx, ebx
call fcn.00412310
mov eax, dword [ebx + 8]
sub eax, ebp
cmp eax, esi
jae 0x5b0d35
mov esi, eax
xor edi, edi
cmp esi, edi
jbe 0x5b0d6d
mov ecx, dword [ebx + 4]
sub eax, esi
add ecx, ebp
push eax
lea edx, [esi + ecx]
push edx
push ecx
call fcn.005bcf90
mov edi, dword [ebx + 8]
add esp, 0xc
sub edi, esi
mov ecx, ebx
push 0
push edi
call fcn.004018c0
test al, al
je 0x5b0d6b
push edi
mov ecx, ebx
call fcn.004018a0
xor edi, edi
push edi
push edi
mov ecx, ebx
call fcn.00421610
jmp 0x5b0e20
xor edi, edi
cmp ebp, edi
jbe 0x5b0de9
cmp ebp, ecx
jne 0x5b0de9
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x5b0d91
mov eax, 0x5e514c
cmp byte [eax - 1], 0xfe
jae 0x5b0de9
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x5b0dbb
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5b0db2
cmp al, 0xff
je 0x5b0db2
dec al
mov byte [ecx], al
jmp 0x5b0dbb
push ecx
call fcn.005bc500
add esp, 4
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], edi
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x5b0dd0
mov eax, 0x5e514c
mov dword [ebx + 4], eax
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov esi, dword [esi + 0xc]
mov dword [ebx + 0xc], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5b0e20
push 1
push ebp
mov ecx, ebx
call fcn.004018c0
test al, al
je 0x5b0e20
mov esi, dword [esi + 4]
cmp esi, edi
jne 0x5b0e03
mov esi, 0x5e514c
mov edi, dword [ebx + 4]
mov ecx, ebp
mov edx, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebx
call fcn.004018a0
xor edi, edi
mov eax, dword [esp + 0x9c]
cmp eax, edi
je 0x5b0e48
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5b0e3f
cmp al, 0xff
je 0x5b0e3f
dec al
mov byte [ecx], al
jmp 0x5b0e48
push ecx
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x23c]
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], edi
mov byte [esp + 0x223c], 1
call fcn.005b1830
lea ecx, [esp + 0x44c]
mov byte [esp + 0x223c], 0
call fcn.005807b0
lea ecx, [esp + 0x20]
mov dword [esp + 0x223c], 0xffffffff
call fcn.005b7500
mov eax, 1
jmp 0x5b0b22