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

Disassembly:
push 0xffffffffffffffff
push 0x56f956
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x80
mov al, byte [esp + 3]
push ebx
push ebp
push esi
mov ebx, ecx
xor esi, esi
push edi
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x40], al
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
push 6
push 0x59cd54
lea ecx, [esp + 0x24]
mov dword [esp + 0xa0], esi
mov dword [esp + 0x28], 0xffffffff
call fcn.005318a0
mov ecx, dword [0x5bd7b8]
mov dx, word [0x5bd7bc]
mov al, byte [0x5bd7be]
mov dword [esp + 0x38], ecx
push 6
push 0x59c0fc
lea ecx, [esp + 0x1c]
mov byte [esp + 0xa0], 1
mov word [esp + 0x44], dx
mov byte [esp + 0x46], al
call fcn.005318a0
push 6
push 0x5bd7a8
lea ecx, [esp + 0x20]
mov byte [esp + 0xa0], 2
call fcn.005318a0
push esi
push 1
push ecx
mov byte [esp + 0xa4], 3
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 4
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x59ce08
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
push esi
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 5
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x59c0ec
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
mov ecx, ebx
call fcn.0052cfd0
mov ecx, dword [esp + 0xa4]
push ecx
push 5
lea ecx, [esp + 0x24]
call fcn.00531ad0
mov eax, dword [esp + 0xa0]
and eax, 0xff
cmp eax, 3
ja case.default.0x52a005
jmp dword [eax*4 + 0x52b318]
lea eax, [ebx + 0xc]
push 2
lea edx, [esp + 0x3c]
lea ecx, [ebx + 0x78]
push eax
push edx
mov byte [esp + 0x48], 0xd
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
call fcn.0043cb50
cmp ax, si
jne 0x52a0d7
push esi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x59b920
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 6
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x59ba20
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
lea ecx, [esp + 0x18]
mov byte [esp + 0x98], 2
call fcn.00531940
lea ecx, [esp + 0x14]
mov byte [esp + 0x98], 1
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x98], 0
call fcn.00531940
mov ecx, dword [esp + 0x44]
cmp ecx, esi
je 0x52b1b6
mov al, byte [ecx - 1]
test al, al
je 0x52b1ac
cmp al, 0xff
je 0x52b1ac
dec al
mov byte [ecx - 1], al
xor ax, ax
jmp 0x52b2fd
mov ecx, 0x5bd594
lea eax, [ebx + 0xf]
mov esi, 0x12
mov dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
dec esi
jne 0x52a0e4
mov ebp, dword [esp + 0xa0]
xor edi, edi
push ecx
lea eax, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.005396d0
push 0x1e
push 5
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 1
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.00539850
push 3
push 5
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 1
push ecx
lea eax, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.00539850
xor esi, esi
push esi
push 5
lea ecx, [esp + 0x20]
call fcn.00531ad0
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.00531810
lea eax, [esp + 0x54]
mov ecx, ebx
push eax
call fcn.0052d730
mov ecx, dword [0x57217c]
mov byte [esp + 0x98], 7
push ecx
push edi
push eax
lea ecx, [esp + 0x4c]
call fcn.004049b0
mov eax, dword [esp + 0x54]
mov byte [esp + 0x98], 3
cmp eax, edi
je 0x52a1da
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x52a1d1
cmp al, 0xff
je 0x52a1d1
dec al
mov byte [ecx], al
jmp 0x52a1da
push ecx
call fcn.00556360
add esp, 4
mov dl, byte [esp + 0x40]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov byte [ecx], dl
mov dword [ecx + 4], edi
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], edi
mov eax, dword [0x57217c]
mov dword [esp + 0x3c], esp
push eax
lea edx, [esp + 0x54]
push edi
push edx
call fcn.004049b0
push ecx
lea eax, [esp + 0x2c]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
mov byte [esp + 0xb0], 8
call fcn.00531810
mov ecx, dword [0x5c6634]
mov byte [esp + 0xac], 3
call fcn.00539a20
inc esi
cmp si, 0xb
jl 0x52a16a
mov ecx, dword [0x5c6634]
push 0xff
call fcn.00535f90
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [0x5c6634]
call fcn.00539da0
movsx eax, ax
sub eax, edi
je 0x52a286
dec eax
je 0x52b0b4
mov edx, dword [esp + 0x20]
mov ecx, ebx
push edx
push ebp
call fcn.005277b0
jmp 0x52a0f6
push edi
push 4
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 9
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x59cd64
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
cmp ax, 4
jne 0x52a30d
lea ecx, [esp + 0x18]
mov byte [esp + 0x98], 2
call fcn.00531940
lea ecx, [esp + 0x14]
mov byte [esp + 0x98], 1
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x98], 0
call fcn.00531940
mov ecx, dword [esp + 0x44]
cmp ecx, edi
jmp 0x52a0b1
push edi
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0xa
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x59ccd4
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
mov ecx, ebx
call fcn.0052c0b0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
push 2
push eax
push 0x5bd590
call fcn.0043cb50
push edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0xb
mov ecx, esp
mov dword [esp + 0x3c], esp
jmp 0x52b23a
lea eax, [ebx + 0xc]
push 2
lea edx, [esp + 0x3c]
lea ecx, [ebx + 0x78]
push eax
push edx
mov byte [esp + 0x48], 0x12
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
call fcn.0043cb50
cmp ax, si
jne 0x52a3e4
push esi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x59b920
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0xc
mov ecx, esp
mov dword [esp + 0x3c], esp
jmp 0x52a05a
mov ecx, 0x5bd5ac
lea eax, [ebx + 0xf]
mov esi, 3
mov dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
dec esi
jne 0x52a3f1
xor edi, edi
push ecx
lea eax, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.005396d0
push 0x1e
push 5
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 1
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.00539850
push 3
push 5
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 1
push ecx
lea eax, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.00539850
mov dword [esp + 0x2c], edi
mov cl, byte [esp + 0x2c]
add cl, 0xb
push ecx
push 5
lea ecx, [esp + 0x20]
call fcn.00531ad0
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.00531810
lea eax, [esp + 0x64]
mov ecx, ebx
push eax
call fcn.0052d730
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x57217c]
mov ebp, eax
mov byte [esp + 0x98], 0xd
cmp ecx, ebp
jae 0x52a4bd
mov ebp, ecx
lea edx, [esp + 0x40]
cmp edx, esi
jne 0x52a4e0
push ecx
push ebp
lea ecx, [esp + 0x48]
call fcn.00404c30
push edi
push edi
lea ecx, [esp + 0x48]
call fcn.00404c30
jmp 0x52a569
cmp ebp, edi
jbe 0x52a52d
cmp ebp, eax
jne 0x52a52d
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x52a4f4
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x52a52d
push 1
lea ecx, [esp + 0x44]
call fcn.00404bb0
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x52a511
mov eax, 0x572184
mov dword [esp + 0x44], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x48], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x4c], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x52a569
push 1
push ebp
lea ecx, [esp + 0x48]
call fcn.00404d70
test al, al
je 0x52a569
mov esi, dword [esi + 4]
cmp esi, edi
jne 0x52a549
mov esi, 0x572184
mov edi, dword [esp + 0x44]
mov ecx, ebp
mov eax, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x44]
call fcn.00404d50
xor edi, edi
mov eax, dword [esp + 0x64]
mov byte [esp + 0x98], 3
cmp eax, edi
je 0x52a596
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x52a58d
cmp al, 0xff
je 0x52a58d
dec al
mov byte [ecx], al
jmp 0x52a596
push ecx
call fcn.00556360
add esp, 4
mov dl, byte [esp + 0x40]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov byte [ecx], dl
mov dword [ecx + 4], edi
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], edi
mov eax, dword [0x57217c]
mov dword [esp + 0x40], esp
push eax
lea edx, [esp + 0x54]
push edi
push edx
call fcn.004049b0
push ecx
lea eax, [esp + 0x2c]
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
mov byte [esp + 0xb0], 0xe
call fcn.00531810
mov ecx, dword [0x5c6634]
mov byte [esp + 0xac], 3
call fcn.00539a20
mov eax, dword [esp + 0x2c]
inc eax
cmp ax, 3
mov dword [esp + 0x2c], eax
jl 0x52a472
mov ecx, dword [0x5c6634]
push 0xff
call fcn.00535f90
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [0x5c6634]
call fcn.00539da0
movsx eax, ax
sub eax, edi
je 0x52a651
dec eax
je 0x52b0b4
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0xa0]
push edx
push eax
mov ecx, ebx
call fcn.005277b0
jmp 0x52a3fc
push edi
push 4
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0xf
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59cd64
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
cmp ax, 4
jne 0x52a6d8
lea ecx, [esp + 0x18]
mov byte [esp + 0x98], 2
call fcn.00531940
lea ecx, [esp + 0x14]
mov byte [esp + 0x98], 1
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x98], 0
call fcn.00531940
mov ecx, dword [esp + 0x44]
cmp ecx, edi
jmp 0x52a0b1
push edi
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0x10
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59ccd4
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
mov ecx, ebx
call fcn.0052c0b0
mov ecx, dword [esp + 0x24]
push 2
push ecx
mov ecx, dword [esp + 0x30]
push 0x5bd5a8
call fcn.0043cb50
push edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0x11
mov ecx, esp
mov dword [esp + 0x40], esp
jmp 0x52b23a
mov ecx, ebx
call fcn.0052b330
test ax, ax
je 0x52a078
lea eax, [ebx + 0xc]
push 2
lea edx, [esp + 0x3c]
lea ecx, [ebx + 0x78]
push eax
push edx
mov byte [esp + 0x48], 5
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
call fcn.0043cb50
cmp ax, si
jne 0x52a7bf
push esi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b920
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0x12
mov ecx, esp
mov dword [esp + 0x40], esp
jmp 0x52a05a
mov ecx, 0x5bd57c
lea eax, [ebx + 0xf]
mov esi, 0x10
mov dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
dec esi
jne 0x52a7cc
mov ecx, ebx
call fcn.0052c0b0
test ax, ax
jne 0x52a867
push 0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0x13
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x5bd7b0
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
lea ecx, [esp + 0x18]
mov byte [esp + 0x98], 2
call fcn.00531940
lea ecx, [esp + 0x14]
mov byte [esp + 0x98], 1
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x98], 0
call fcn.00531940
mov ecx, dword [esp + 0x44]
test ecx, ecx
jmp 0x52a0b1
xor edi, edi
push ecx
lea eax, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.005396d0
push 0x1e
push 5
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 1
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.00539850
push 3
push 5
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 1
push ecx
lea eax, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.00539850
push 0xe
push 5
lea ecx, [esp + 0x20]
call fcn.00531ad0
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.00531810
lea eax, [esp + 0x74]
mov ecx, ebx
push eax
call fcn.0052d730
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x57217c]
mov ebp, eax
mov byte [esp + 0x98], 0x14
cmp ecx, ebp
jae 0x52a920
mov ebp, ecx
lea edx, [esp + 0x40]
cmp edx, esi
jne 0x52a943
push ecx
push ebp
lea ecx, [esp + 0x48]
call fcn.00404c30
push edi
push edi
lea ecx, [esp + 0x48]
call fcn.00404c30
jmp 0x52a9ce
cmp ebp, edi
jbe 0x52a990
cmp ebp, eax
jne 0x52a990
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x52a957
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x52a990
push 1
lea ecx, [esp + 0x44]
call fcn.00404bb0
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x52a974
mov eax, 0x572184
mov dword [esp + 0x44], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x48], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x4c], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x52a9ce
push 1
push ebp
lea ecx, [esp + 0x48]
call fcn.00404d70
test al, al
je 0x52a9ce
mov esi, dword [esi + 4]
cmp esi, edi
jne 0x52a9ac
mov esi, 0x572184
mov edi, dword [esp + 0x44]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x48], ebp
xor edi, edi
mov byte [ecx + ebp], 0
mov eax, dword [esp + 0x74]
mov byte [esp + 0x98], 3
cmp eax, edi
je 0x52a9fb
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x52a9f2
cmp al, 0xff
je 0x52a9f2
dec al
mov byte [ecx], al
jmp 0x52a9fb
push ecx
call fcn.00556360
add esp, 4
mov dl, byte [esp + 0x40]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], edi
mov byte [ecx], dl
mov dword [ecx + 4], edi
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], edi
mov eax, dword [0x57217c]
mov dword [esp + 0x44], esp
push eax
lea edx, [esp + 0x54]
push edi
push edx
call fcn.004049b0
push ecx
lea eax, [esp + 0x2c]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
mov byte [esp + 0xb0], 0x15
call fcn.00531810
mov ecx, dword [0x5c6634]
mov byte [esp + 0xac], 3
call fcn.00539a20
mov ecx, dword [0x5c6634]
push 0xff
call fcn.00535f90
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [0x5c6634]
call fcn.00539da0
movsx eax, ax
sub eax, edi
je 0x52aaac
dec eax
je 0x52b0b4
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0xa0]
push edx
push eax
mov ecx, ebx
call fcn.005277b0
jmp 0x52a869
push edi
push 4
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0x16
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59cd64
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
cmp ax, 4
jne 0x52ab33
lea ecx, [esp + 0x18]
mov byte [esp + 0x98], 2
call fcn.00531940
lea ecx, [esp + 0x14]
mov byte [esp + 0x98], 1
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x98], 0
call fcn.00531940
mov ecx, dword [esp + 0x44]
cmp ecx, edi
jmp 0x52a0b1
push edi
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0x17
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59ccd4
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
mov ecx, dword [esp + 0x24]
push 2
push ecx
mov ecx, dword [esp + 0x30]
push 0x5bd578
call fcn.0043cb50
push edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0x18
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x5adb08
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
lea ecx, [esp + 0x18]
mov byte [esp + 0x98], 2
call fcn.00531940
lea ecx, [esp + 0x14]
mov byte [esp + 0x98], 1
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x98], 0
call fcn.00531940
mov eax, dword [esp + 0x44]
cmp eax, edi
je 0x52b2f9
mov cl, byte [eax - 1]
test cl, cl
je 0x52b2a6
cmp cl, 0xff
je 0x52b2a6
dec cl
mov byte [eax - 1], cl
jmp 0x52b2f9
mov ecx, ebx
call fcn.0052b330
test ax, ax
je 0x52a078
lea eax, [ebx + 0xc]
push 2
lea edx, [esp + 0x3c]
lea ecx, [ebx + 0x78]
push eax
push edx
mov byte [esp + 0x48], 5
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
call fcn.0043cb50
cmp ax, si
jne 0x52ac89
push esi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b920
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0x19
mov ecx, esp
mov dword [esp + 0x40], esp
jmp 0x52a05a
mov ecx, 0x5bd57c
lea eax, [ebx + 0xf]
mov esi, 0x10
mov dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
dec esi
jne 0x52ac96
mov ecx, ebx
call fcn.0052c0b0
test ax, ax
jne 0x52ad31
push 0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0x1a
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x5bd7b0
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
lea ecx, [esp + 0x18]
mov byte [esp + 0x98], 2
call fcn.00531940
lea ecx, [esp + 0x14]
mov byte [esp + 0x98], 1
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x98], 0
call fcn.00531940
mov ecx, dword [esp + 0x44]
test ecx, ecx
jmp 0x52b192
push ecx
lea eax, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.005396d0
push 0x1e
push 5
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 1
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.00539850
push 3
push 5
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 1
push ecx
lea eax, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.00539850
push 0xf
push 5
lea ecx, [esp + 0x20]
call fcn.00531ad0
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.00531810
lea eax, [esp + 0x84]
mov ecx, ebx
push eax
call fcn.0052d730
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x57217c]
mov ebp, eax
mov byte [esp + 0x98], 0x1b
cmp edi, ebp
jae 0x52adeb
mov ebp, edi
lea ecx, [esp + 0x40]
cmp ecx, esi
jne 0x52ae5b
cmp dword [esp + 0x48], ebp
jae 0x52adfe
call fcn.00556597
lea ecx, [esp + 0x40]
call fcn.00405210
mov eax, dword [esp + 0x48]
sub eax, ebp
cmp eax, edi
jae 0x52ae13
mov edi, eax
test edi, edi
jbe 0x52ae4d
mov edx, dword [esp + 0x44]
sub eax, edi
add ebp, edx
push eax
lea ecx, [edi + ebp]
push ecx
push ebp
call fcn.00556b00
mov esi, dword [esp + 0x54]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x40]
push 0
push esi
call fcn.00404d70
test al, al
je 0x52ae4d
push esi
lea ecx, [esp + 0x44]
call fcn.00404d50
lea ecx, [esp + 0x40]
call fcn.00405210
jmp 0x52aee2
test ebp, ebp
jbe 0x52aea8
cmp ebp, eax
jne 0x52aea8
mov eax, dword [esi + 4]
test eax, eax
jne 0x52ae6f
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x52aea8
push 1
lea ecx, [esp + 0x44]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x52ae8c
mov eax, 0x572184
mov dword [esp + 0x44], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x48], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x4c], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x52aee2
push 1
push ebp
lea ecx, [esp + 0x48]
call fcn.00404d70
test al, al
je 0x52aee2
mov esi, dword [esi + 4]
test esi, esi
jne 0x52aec4
mov esi, 0x572184
mov edi, dword [esp + 0x44]
mov ecx, ebp
mov eax, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x44]
call fcn.00404d50
mov eax, dword [esp + 0x84]
mov byte [esp + 0x98], 3
test eax, eax
je 0x52af12
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x52af09
cmp al, 0xff
je 0x52af09
dec al
mov byte [ecx], al
jmp 0x52af12
push ecx
call fcn.00556360
add esp, 4
mov cl, byte [esp + 0x40]
sub esp, 0x10
xor edi, edi
mov ebp, esp
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], edi
mov byte [ebp], cl
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
mov eax, dword [esp + 0x58]
mov esi, dword [0x57217c]
mov ebx, eax
cmp esi, ebx
mov dword [esp + 0x44], esp
jae 0x52af54
mov ebx, esi
lea edx, [esp + 0x50]
cmp ebp, edx
jne 0x52afbb
cmp ebx, edi
jbe 0x52af65
call fcn.00556597
mov ecx, ebp
call fcn.00405210
mov eax, dword [ebp + 8]
sub eax, ebx
cmp eax, esi
jae 0x52af77
mov esi, eax
cmp esi, edi
jbe 0x52afad
mov ecx, dword [ebp + 4]
sub eax, esi
add ecx, ebx
push eax
lea edx, [ecx + esi]
push edx
push ecx
call fcn.00556b00
mov edi, dword [ebp + 8]
add esp, 0xc
sub edi, esi
mov ecx, ebp
push 0
push edi
call fcn.00404d70
test al, al
je 0x52afab
push edi
mov ecx, ebp
call fcn.00404d50
xor edi, edi
push edi
push edi
mov ecx, ebp
call fcn.00404c30
jmp 0x52b03f
cmp ebx, edi
jbe 0x52b007
cmp ebx, eax
jne 0x52b007
mov eax, dword [esp + 0x54]
cmp eax, edi
jne 0x52afd0
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x52b007
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
mov eax, dword [esp + 0x54]
cmp eax, edi
jne 0x52afec
mov eax, 0x572184
mov dword [ebp + 4], eax
mov edx, dword [esp + 0x58]
mov dword [ebp + 8], edx
mov ecx, dword [esp + 0x5c]
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x52b03f
push 1
push ebx
mov ecx, ebp
call fcn.00404d70
test al, al
je 0x52b03f
mov esi, dword [esp + 0x54]
cmp esi, edi
jne 0x52b022
mov esi, 0x572184
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
push ebx
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, ebp
call fcn.00404d50
xor edi, edi
push ecx
lea eax, [esp + 0x2c]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
mov byte [esp + 0xb0], 0x1c
call fcn.00531810
mov ecx, dword [0x5c6634]
mov byte [esp + 0xac], 3
call fcn.00539a20
mov ecx, dword [0x5c6634]
push 0xff
call fcn.00535f90
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [0x5c6634]
call fcn.00539da0
movsx eax, ax
sub eax, edi
je 0x52b110
dec eax
je 0x52b0b4
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x2c]
push edx
push eax
call fcn.005277b0
mov ebx, dword [esp + 0x2c]
jmp 0x52ad31
lea ecx, [esp + 0x18]
mov byte [esp + 0x98], 2
call fcn.00531940
lea ecx, [esp + 0x14]
mov byte [esp + 0x98], 1
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x98], 0
call fcn.00531940
mov ecx, dword [esp + 0x44]
cmp ecx, edi
je 0x52b2f9
mov al, byte [ecx - 1]
test al, al
je 0x52b2ef
cmp al, 0xff
je 0x52b2ef
dec al
mov byte [ecx - 1], al
jmp 0x52b2f9
push edi
push 4
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0x1d
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59cd64
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
cmp ax, 4
jne 0x52b1be
lea ecx, [esp + 0x18]
mov byte [esp + 0x98], 2
call fcn.00531940
lea ecx, [esp + 0x14]
mov byte [esp + 0x98], 1
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x98], 0
call fcn.00531940
mov ecx, dword [esp + 0x44]
cmp ecx, edi
je 0x52b1b6
mov al, byte [ecx - 1]
test al, al
je 0x52b1ac
cmp al, 0xff
je 0x52b1ac
dec al
mov byte [ecx - 1], al
xor ax, ax
jmp 0x52b2fd
dec ecx
push ecx
call fcn.00556360
add esp, 4
xor ax, ax
jmp 0x52b2fd
push edi
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0x1e
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59ccd4
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
mov ecx, dword [esp + 0x24]
push 2
push ecx
mov ecx, dword [esp + 0x30]
push 0x5bd578
call fcn.0043cb50
push edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa8], 0x1f
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x5adb08
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa8], 3
call fcn.00533b90
lea ecx, [esp + 0x18]
mov byte [esp + 0x98], 2
call fcn.00531940
lea ecx, [esp + 0x14]
mov byte [esp + 0x98], 1
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x98], 0
call fcn.00531940
mov eax, dword [esp + 0x44]
cmp eax, edi
je 0x52b2f9
mov cl, byte [eax - 1]
test cl, cl
je 0x52b2a6
cmp cl, 0xff
je 0x52b2a6
dec cl
mov byte [eax - 1], cl
jmp 0x52b2f9
dec eax
push eax
jmp 0x52b2f1
mov ecx, ebx
call fcn.004594b0
lea ecx, [esp + 0x18]
mov byte [esp + 0x98], 2
call fcn.00531940
lea ecx, [esp + 0x14]
mov byte [esp + 0x98], 1
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x98], 0
call fcn.00531940
mov ecx, dword [esp + 0x44]
cmp ecx, esi
jmp 0x52b0ed
dec ecx
push ecx
call fcn.00556360
add esp, 4
mov ax, 1
mov ecx, dword [esp + 0x90]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x8c
ret 8