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

Disassembly:
push 0xffffffffffffffff
push 0x5e2058
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3a0
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x1b0]
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x60]
mov dword [esp + 0x54], esi
stosw word es:[edi], ax
stosb byte es:[edi], al
call fcn.005af6f0
dec eax
cmp eax, 0x21
ja case.0x57ba12.10
xor ecx, ecx
mov cl, byte [eax + 0x57d448]
jmp dword [ecx*4 + 0x57d420]
mov ebx, dword [esp + 0x3c0]
mov ecx, ebx
call fcn.0055a240
test ax, ax
jle case.0x57ba12.10
xor esi, esi
mov ecx, ebx
push esi
call fcn.0055a180
mov ecx, dword [eax + 4]
cmp ecx, esi
jne 0x57ba45
xor eax, eax
jmp 0x57ba4d
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
mov dl, byte [esp + 0x13]
mov dword [esp + 0x3c], eax
mov byte [esp + 0x68], dl
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
xor ebp, ebp
cmp eax, esi
mov dword [esp + 0x3b8], esi
jle 0x57bbde
push esi
mov ecx, ebx
call fcn.0055a180
mov eax, dword [eax + 4]
lea ecx, [esp + 0x1c]
lea eax, [eax + ebp*4]
push eax
call fcn.00558070
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b8], 1
call fcn.00558520
push eax
lea ecx, [esp + 0xb4]
push esi
push ecx
lea ecx, [esp + 0x28]
call fcn.00558550
call fcn.00557e00
test al, al
je 0x57badc
mov ecx, 0xc
lea esi, [esp + 0xb0]
lea edi, [esp + 0x2b0]
mov eax, 0x32
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x57bb63
mov al, byte [esp + 0xb0]
cmp al, 0x80
jne 0x57bb01
movzx ax, byte [esp + 0xb3]
mov ecx, eax
lea esi, [esp + 0xb4]
and ecx, 0xffff
jmp 0x57bb4e
jbe 0x57bb1d
movzx ax, al
sub eax, 0x80
lea esi, [esp + 0xb3]
mov ecx, eax
and ecx, 0xffff
jmp 0x57bb4e
test al, al
jne 0x57bb3b
movzx ax, byte [esp + 0xb1]
mov ecx, eax
lea esi, [esp + 0xb2]
and ecx, 0xffff
jmp 0x57bb4e
movzx ax, al
mov ecx, eax
lea esi, [esp + 0xb1]
and ecx, 0xffff
mov edx, ecx
lea edi, [esp + 0x2b0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push eax
lea eax, [esp + 0x2b4]
push eax
lea ecx, [esp + 0x28]
call fcn.00558100
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
mov byte [esp + 0x3c0], 2
call fcn.00558070
xor esi, esi
push ebp
push esi
mov ecx, ebx
mov byte [esp + 0x3c4], 2
call fcn.0055a180
mov ecx, eax
call fcn.00402a80
mov ecx, eax
call fcn.00558390
lea ecx, [esp + 0x20]
mov byte [esp + 0x3b8], 1
call fcn.005581a0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b8], 0
call fcn.005581a0
mov eax, dword [esp + 0x3c]
inc ebp
cmp ebp, eax
jl 0x57ba76
push esi
call fcn.005bc500
add esp, 4
mov eax, 1
jmp 0x57d3ae
mov edi, dword [esp + 0x3c0]
mov ecx, edi
call fcn.0055a240
test ax, ax
jle case.0x57ba12.10
push 0
mov ecx, edi
call fcn.0055a180
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x57bc1c
xor eax, eax
jmp 0x57bc24
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
mov cl, byte [esp + 0x13]
mov dword [esp + 0x3c], eax
mov byte [esp + 0x68], cl
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
xor ebx, ebx
mov dword [esp + 0x3b8], 4
test eax, eax
jle 0x57bd93
jmp 0x57bc63
mov esi, dword [esp + 0x54]
push 0
mov ecx, edi
call fcn.0055a180
mov eax, dword [eax + 4]
lea ecx, [esp + 0x1c]
lea edx, [eax + ebx*4]
push edx
call fcn.00558070
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b8], 5
call fcn.00558520
mov edi, dword [esi + 0x2014]
lea ecx, [esp + 0x1c]
call fcn.00558520
mov bp, ax
mov ecx, esi
sub ebp, edi
call fcn.00576710
movzx ax, al
sub ebp, eax
mov eax, dword [esi + 0x2014]
push ebp
lea ecx, [esp + 0x2b4]
push eax
push ecx
lea ecx, [esp + 0x28]
call fcn.00558550
call fcn.00557e00
test al, al
je 0x57bcee
mov ecx, 0xc
lea esi, [esp + 0x2b0]
lea edi, [esp + 0xb0]
mov ebp, 0x32
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x57bd12
mov ecx, ebp
lea esi, [esp + 0x2b0]
and ecx, 0xffff
lea edi, [esp + 0xb0]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0xb0]
push ebp
push eax
lea ecx, [esp + 0x28]
call fcn.00558100
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
mov byte [esp + 0x3c0], 6
call fcn.00558070
mov edi, dword [esp + 0x3c4]
push ebx
push 0
mov ecx, edi
mov byte [esp + 0x3c4], 6
call fcn.0055a180
mov ecx, eax
call fcn.00402a80
mov ecx, eax
call fcn.00558390
lea ecx, [esp + 0x20]
mov byte [esp + 0x3b8], 5
call fcn.005581a0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b8], 4
call fcn.005581a0
mov eax, dword [esp + 0x3c]
inc ebx
cmp ebx, eax
jl 0x57bc5f
push 0
call fcn.005bc500
add esp, 4
mov eax, 1
jmp 0x57d3ae
mov ebx, dword [esp + 0x3c0]
mov ecx, ebx
call fcn.0055a240
test ax, ax
jle case.0x57ba12.10
call fcn.00557e00
test al, al
je 0x57be4b
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0x1b0]
push 0x32
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x1b4]
lea ecx, [esp + 0x24]
push eax
call fcn.00558100
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
mov dword [esp + 0x3c0], 8
call fcn.00558070
push 0
push 0
mov ecx, ebx
mov byte [esp + 0x3c4], 8
call fcn.0055a180
mov ecx, eax
call fcn.00402a80
mov ecx, eax
call fcn.00558390
lea ecx, [esp + 0x20]
mov dword [esp + 0x3b8], 0xffffffff
call fcn.005581a0
mov eax, 1
jmp 0x57d3ae
xor ebp, ebp
mov ecx, ebx
push ebp
call fcn.0055a180
mov ecx, dword [eax + 4]
cmp ecx, ebp
jne 0x57be60
xor eax, eax
jmp 0x57be68
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
mov cl, byte [esp + 0x13]
mov dword [esp + 0x3c], eax
mov byte [esp + 0x68], cl
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebp
cmp eax, ebp
mov dword [esp + 0x3b8], 0xa
jle 0x57bf99
push 0
mov ecx, ebx
call fcn.0055a180
mov eax, dword [eax + 4]
lea ecx, [esp + 0x1c]
lea edx, [eax + ebp*4]
push edx
call fcn.00558070
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b8], 0xb
call fcn.00558520
push eax
lea eax, [esp + 0x2b4]
push 0
push eax
lea ecx, [esp + 0x28]
call fcn.00558550
mov cl, byte [esp + 0x2b0]
xor ax, ax
shr cl, 4
mov al, cl
lea esi, [esp + 0x2b3]
mov ecx, eax
lea edi, [esp + 0xb0]
and ecx, 0xffff
add eax, 0xfffffffd
sub ecx, 3
push eax
mov edx, ecx
lea eax, [esp + 0xb4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x28]
call fcn.00558100
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
mov byte [esp + 0x3c0], 0xc
call fcn.00558070
push ebp
push 0
mov ecx, ebx
mov byte [esp + 0x3c4], 0xc
call fcn.0055a180
mov ecx, eax
call fcn.00402a80
mov ecx, eax
call fcn.00558390
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0xb0]
mov byte [esp + 0x3b8], 0xb
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x20]
stosb byte es:[edi], al
call fcn.005581a0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3b8], 0xa
call fcn.005581a0
mov eax, dword [esp + 0x3c]
inc ebp
cmp ebp, eax
jl 0x57be93
xor ebp, ebp
push ebp
call fcn.005bc500
add esp, 4
mov eax, 1
jmp 0x57d3ae
mov ebp, dword [esp + 0x3c0]
mov ecx, ebp
call fcn.0055a240
lea ecx, [esp + 0x78]
mov dword [esp + 0x18], eax
call fcn.005589e0
sub esp, 0x10
lea edi, [ebp + 0x10]
mov dword [esp + 0x30], esp
mov ecx, esp
push edi
mov dword [esp + 0x3cc], 0xe
call fcn.00412410
lea ecx, [esp + 0x88]
call fcn.00558a40
mov al, byte [edi + 0x10]
lea ecx, [esp + 0x78]
mov byte [esp + 0x88], al
mov byte [esp + 0x3c], al
mov al, byte [esp + 0x78]
mov byte [esp + 0x68], al
call fcn.00592bf0
xor ebx, ebx
cmp eax, ebx
jge 0x57c017
xor eax, eax
lea ecx, [eax*8]
push ecx
call fcn.005bcf2f
mov edx, dword [esp + 0x84]
add esp, 4
mov dword [esp + 0x6c], eax
lea ecx, [esp + 0x68]
push eax
mov eax, dword [esp + 0x80]
push edx
push eax
call fcn.00413410
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov cl, byte [esp + 0x13]
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x28], cl
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
lea ecx, [esp + 0x14]
mov byte [esp + 0x3b8], 0x10
call fcn.00558060
mov dl, byte [esp + 0x13]
mov dword [esp + 0x44], ebx
mov byte [esp + 0x40], dl
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov ecx, dword [esi + 0x60]
mov byte [esp + 0x3b8], 0x12
mov dword [esp + 0x50], ebx
mov byte [esp + 0x13], 4
call fcn.005af6f0
cmp eax, 5
jne 0x57c0aa
mov byte [esp + 0x13], al
jmp 0x57c0c9
mov ecx, dword [esi + 0x60]
call fcn.005af6f0
cmp eax, 6
je 0x57c0c4
mov ecx, dword [esi + 0x60]
call fcn.005af6f0
cmp eax, 7
jne 0x57c0c9
mov byte [esp + 0x13], 6
mov ecx, dword [esi + 0x60]
call fcn.005af6f0
cmp eax, 9
je 0x57c0e7
mov ecx, dword [esi + 0x60]
call fcn.005af6f0
cmp eax, 8
jne 0x57c490
mov eax, dword [esp + 0x18]
mov ecx, ebp
lea edi, [eax - 1]
push edi
mov dword [esp + 0x24], edi
call fcn.0055a180
mov ecx, dword [eax + 4]
cmp ecx, ebx
jne 0x57c105
xor eax, eax
jmp 0x57c10d
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
cmp ax, bx
jbe 0x57c138
push ebx
push edi
mov ecx, ebp
call fcn.0055a180
mov ecx, eax
call fcn.00402a80
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00558070
lea ecx, [esp + 0x18]
call fcn.00558390
push 1
lea ecx, [esp + 0x18]
call fcn.00558380
cmp al, 5
jne 0x57c490
push edi
mov ecx, ebp
call fcn.0055a180
mov ecx, dword [eax + 4]
cmp ecx, ebx
jne 0x57c15e
xor edi, edi
jmp 0x57c166
mov edi, dword [eax + 8]
sub edi, ecx
sar edi, 2
lea ecx, [esp + 0x8c]
call fcn.00559c60
mov cl, byte [esp + 0x13]
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x58], cl
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
and edi, 0xffff
mov byte [esp + 0x3b8], 0x14
mov dword [esp + 0x50], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x24], edi
jle 0x57c2ed
movzx dx, byte [esp + 0x13]
mov ebp, dword [esp + 0x18]
mov word [esp + 0x1c], dx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x3c8]
call fcn.0055a180
mov ecx, eax
call fcn.00402a80
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00558070
lea ecx, [esp + 0x18]
call fcn.00558390
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0x14]
lea eax, [edi - 1]
push eax
call fcn.00558380
and al, 0x30
cmp al, 0x10
jne 0x57c20f
cmp dword [esp + 0x50], ebx
jne 0x57c20f
mov dword [esp + 0x50], 1
jmp 0x57c216
cmp dword [esp + 0x50], 1
jne 0x57c228
push edi
lea ecx, [esp + 0x18]
call fcn.00558380
cmp al, 0x7f
je 0x57c2d6
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x2b0]
push ebx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x18]
stosb byte es:[edi], al
call fcn.00558380
movzx bp, al
mov eax, dword [esi + 0x2014]
push ebp
dec eax
lea edx, [esp + 0x2b4]
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00558550
lea eax, [esp + 0x1b0]
test eax, eax
je 0x57c296
mov ecx, ebp
lea esi, [esp + 0x2b0]
and ecx, 0xffff
lea edi, [esp + 0x1b0]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x54]
lea eax, [esp + 0x2b0]
push ebp
push eax
lea ecx, [esp + 0x20]
call fcn.00558100
mov edx, dword [esp + 0x60]
lea ecx, [esp + 0x18]
push ecx
push 1
push edx
lea ecx, [esp + 0x64]
mov byte [esp + 0x3c4], 0x15
call fcn.00402a90
lea ecx, [esp + 0x18]
mov byte [esp + 0x3b8], 0x14
call fcn.005581a0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
inc eax
cmp eax, ecx
mov dword [esp + 0x3c], eax
jl 0x57c1b5
jmp 0x57c2f1
mov ebp, dword [esp + 0x18]
lea eax, [esp + 0x58]
lea ecx, [esp + 0x8c]
push eax
call fcn.00559fd0
mov cl, byte [esp + 0x8c]
sub esp, 0x24
mov esi, esp
mov dword [esp + 0x5c], esp
mov dword [esp + 0x5c], esi
mov byte [esi], cl
lea ecx, [esp + 0xb0]
call fcn.0055f330
cmp eax, ebx
jge 0x57c32a
xor eax, eax
shl eax, 4
push eax
call fcn.005bcf2f
add esp, 4
mov dword [esi + 4], eax
mov edx, dword [esp + 0xb8]
mov ecx, esi
push eax
mov eax, dword [esp + 0xb8]
push edx
push eax
call fcn.00555460
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
lea ecx, [esp + 0xc0]
mov byte [esp + 0x3dc], 0x16
push ecx
lea ecx, [esi + 0x10]
call fcn.0054b240
mov ecx, dword [esp + 0x3e4]
mov byte [esp + 0x3dc], 0x14
call fcn.00559e10
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
and ebp, 0xffff
cmp esi, eax
mov byte [esp + 0x3b8], 0x13
mov edi, eax
je 0x57c3b2
push ebx
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x57c39f
mov esi, dword [esp + 0x5c]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x8c]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov byte [esp + 0x3b8], 0x12
call fcn.00559d60
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
cmp esi, edi
mov byte [esp + 0x3b8], 0x11
je 0x57c402
push ebx
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x57c3ef
mov esi, dword [esp + 0x44]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3b8], 0x10
call fcn.005581a0
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
cmp esi, edi
mov byte [esp + 0x3b8], 0xf
je 0x57c44f
push ebx
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x57c43c
mov esi, dword [esp + 0x2c]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x68]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov byte [esp + 0x3b8], 0xe
call fcn.00558a00
lea ecx, [esp + 0x78]
mov dword [esp + 0x3b8], 0xffffffff
call fcn.00558a00
mov eax, ebp
jmp 0x57d3ae
lea ecx, [esp + 0x68]
call fcn.005594d0
mov ecx, dword [esp + 0x18]
cmp cx, bx
jne 0x57c559
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
cmp esi, edi
mov byte [esp + 0x3b8], 0x11
je 0x57c4cd
push ebx
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x57c4ba
mov esi, dword [esp + 0x44]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3b8], 0x10
call fcn.005581a0
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
cmp esi, edi
mov byte [esp + 0x3b8], 0xf
je 0x57c51a
push ebx
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x57c507
mov esi, dword [esp + 0x2c]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x68]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov byte [esp + 0x3b8], 0xe
call fcn.00558a00
lea ecx, [esp + 0x78]
mov dword [esp + 0x3b8], 0xffffffff
call fcn.00558a00
jmp case.0x57ba12.10
cmp ax, 1
jbe 0x57c620
cmp cx, 2
jae 0x57c620
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
cmp esi, edi
mov byte [esp + 0x3b8], 0x11
je 0x57c594
push ebx
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x57c581
mov esi, dword [esp + 0x44]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3b8], 0x10
call fcn.005581a0
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
cmp esi, edi
mov byte [esp + 0x3b8], 0xf
je 0x57c5e1
push ebx
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x57c5ce
mov esi, dword [esp + 0x2c]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x68]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov byte [esp + 0x3b8], 0xe
call fcn.00558a00
lea ecx, [esp + 0x78]
mov dword [esp + 0x3b8], 0xffffffff
call fcn.00558a00
jmp case.0x57ba12.10
lea eax, [ecx - 1]
mov ecx, ebp
push eax
mov dword [esp + 0x24], eax
call fcn.0055a180
mov ecx, dword [eax + 4]
cmp ecx, ebx
jne 0x57c63a
xor eax, eax
jmp 0x57c642
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
xor edi, edi
xor esi, esi
and eax, 0xffff
mov dword [esp + 0x24], eax
jle 0x57c6e0
movzx ax, byte [esp + 0x13]
dec eax
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x20]
push esi
push edx
mov ecx, ebp
call fcn.0055a180
mov ecx, eax
call fcn.00402a80
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00558070
lea ecx, [esp + 0x18]
call fcn.00558390
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push eax
call fcn.00558380
and al, 0x30
cmp al, 0x10
jne 0x57c6a9
cmp edi, ebx
jne 0x57c6a9
mov edi, 1
jmp 0x57c6ae
cmp edi, 1
jne 0x57c6c2
movzx ax, byte [esp + 0x13]
push eax
lea ecx, [esp + 0x18]
call fcn.00558380
cmp al, 0x7f
je 0x57c6d7
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x14]
push ecx
push 1
push edx
lea ecx, [esp + 0x34]
call fcn.00402a90
mov eax, dword [esp + 0x24]
inc esi
cmp esi, eax
jl 0x57c660
mov eax, dword [esp + 0x2c]
cmp eax, ebx
je 0x57c6f8
mov edi, dword [esp + 0x30]
mov ecx, edi
sub ecx, eax
test ecx, 0xfffffffc
jne 0x57c740
mov edx, dword [esp + 0x24]
mov ecx, ebp
dec edx
push edx
push ebx
call fcn.0055a180
mov ecx, eax
call fcn.00402a80
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00558070
lea ecx, [esp + 0x18]
call fcn.00558390
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x14]
push eax
push 1
push ecx
lea ecx, [esp + 0x34]
call fcn.00402a90
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
cmp eax, ebx
jne 0x57c748
xor edi, edi
jmp 0x57c74d
sub edi, eax
sar edi, 2
push 0
lea ecx, [esp + 0x2c]
call fcn.00402a80
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00558070
lea ecx, [esp + 0x18]
call fcn.00558390
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
push edx
push eax
lea ecx, [esp + 0x48]
mov esi, eax
call fcn.00402cf0
xor bl, bl
xor ebp, ebp
and edi, 0xffff
mov dword [esp + 0x48], esi
mov dword [esp + 0x24], edi
jle 0x57c82d
mov edi, dword [esp + 0x3c]
push ebp
lea ecx, [esp + 0x2c]
call fcn.00402a80
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00558070
lea ecx, [esp + 0x18]
call fcn.00558390
test bl, bl
jne 0x57c80b
movzx si, byte [esp + 0x13]
lea ecx, [esp + 0x14]
lea eax, [esi - 1]
push eax
call fcn.00558380
and al, 0x30
cmp al, 0x10
jne 0x57c7dd
inc esi
push esi
lea ecx, [esp + 0x18]
call fcn.00558380
mov ecx, edi
and eax, 0xff
and ecx, 0xff
add ecx, 0x40
cmp eax, ecx
jne 0x57c820
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x14]
push edx
push 1
mov bl, 1
push eax
jmp 0x57c817
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x14]
push ecx
push 1
push edx
lea ecx, [esp + 0x4c]
call fcn.00402a90
mov eax, dword [esp + 0x24]
inc ebp
cmp ebp, eax
jl 0x57c79f
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
push ecx
push eax
lea ecx, [esp + 0x30]
mov esi, eax
call fcn.00402cf0
mov eax, esi
xor esi, esi
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x57c876
mov edx, dword [esp + 0x48]
sub edx, ecx
sar edx, 2
cmp esi, edx
jae 0x57c876
lea ecx, [ecx + esi*4]
push ecx
push 1
push eax
lea ecx, [esp + 0x34]
call fcn.00402a90
mov eax, dword [esp + 0x30]
inc esi
jmp 0x57c84a
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x57c882
xor esi, esi
jmp 0x57c889
sub eax, ecx
sar eax, 2
mov esi, eax
push 0
lea ecx, [esp + 0x2c]
call fcn.00402a80
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00558070
lea ecx, [esp + 0x18]
call fcn.00558390
mov bl, byte [esp + 0x13]
lea ecx, [esp + 0x14]
movzx bp, bl
mov word [esp + 0x1c], bp
lea edi, [ebp - 1]
push edi
call fcn.00558380
and al, 0x30
cmp al, 0x10
je 0x57cb0b
cmp si, 1
ja 0x57cb0b
mov dl, byte [esp + 0x13]
xor ebp, ebp
xor eax, eax
mov byte [esp + 0x58], dl
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov ebx, esi
mov byte [esp + 0x3b8], 0x19
and ebx, 0xffff
jle 0x57ca0d
push ebp
lea ecx, [esp + 0x2c]
call fcn.00402a80
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00558070
lea ecx, [esp + 0x18]
call fcn.00558390
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0x14]
lea eax, [edi - 1]
push eax
call fcn.00558380
movzx si, al
cmp si, 7
mov dword [esp + 0x50], esi
jbe 0x57c94e
mov esi, 7
mov dword [esp + 0x50], esi
xor ebp, ebp
and esi, 0xffff
jle 0x57c971
lea eax, [edi + ebp]
lea ecx, [esp + 0x14]
push eax
call fcn.00558380
mov byte [esp + ebp + 0xb0], al
inc ebp
cmp ebp, esi
jl 0x57c958
mov ecx, esi
lea esi, [esp + 0xb0]
mov edx, ecx
lea edi, [esp + 0x1b0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x50]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1b4]
push ecx
lea ecx, [esp + 0x20]
call fcn.00558100
mov eax, dword [esp + 0x60]
lea edx, [esp + 0x18]
push edx
push 1
push eax
lea ecx, [esp + 0x64]
mov byte [esp + 0x3c4], 0x1a
call fcn.00402a90
lea ecx, [esp + 0x18]
mov byte [esp + 0x3b8], 0x19
call fcn.005581a0
inc ebp
cmp ebp, ebx
jl 0x57c906
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x57ca0d
mov ecx, dword [esp + 0x60]
sub ecx, eax
sar ecx, 2
je 0x57ca0d
mov esi, dword [esp + 0x3c0]
mov ecx, esi
call fcn.0055a260
lea edx, [esp + 0x58]
mov ecx, esi
push edx
call fcn.00559fd0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x60]
and ecx, 0xffff
cmp eax, edi
mov ebp, ecx
mov byte [esp + 0x3b8], 0x12
mov esi, eax
je 0x57ca3d
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, edi
jne 0x57ca2b
mov eax, dword [esp + 0x5c]
push eax
call fcn.005bc500
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
add esp, 4
xor edi, edi
cmp esi, eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov byte [esp + 0x3b8], 0x11
mov ebx, eax
je 0x57ca7c
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, ebx
jne 0x57ca6a
mov esi, dword [esp + 0x44]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov byte [esp + 0x3b8], 0x10
call fcn.005581a0
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
cmp esi, eax
mov byte [esp + 0x3b8], 0xf
mov ebx, eax
je 0x57caca
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, ebx
jne 0x57cab8
mov esi, dword [esp + 0x2c]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x68]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov byte [esp + 0x3b8], 0xe
call fcn.00558a00
lea ecx, [esp + 0x78]
mov dword [esp + 0x3b8], 0xffffffff
call fcn.00558a00
mov eax, ebp
jmp 0x57d3ae
push edi
lea ecx, [esp + 0x18]
call fcn.00558380
and al, 0xf
push ebp
movzx di, al
lea ecx, [esp + 0x18]
shl edi, 8
call fcn.00558380
movzx ax, al
add edi, eax
cmp bl, 5
mov dword [esp + 0x50], edi
mov ebp, 6
jne 0x57cb41
mov ebp, 5
mov edi, dword [esp + 0x50]
lea ebx, [ebp + 1]
sub edi, ebp
mov dword [esp + 0x50], edi
and edi, 0xffff
mov eax, edi
cdq
idiv ebx
mov ecx, eax
mov eax, edi
cdq
idiv ebx
test edx, edx
je 0x57cb65
inc ecx
and esi, 0xffff
and ecx, 0xffff
dec esi
cmp ecx, esi
je 0x57ccfe
mov eax, dword [0x626edc]
inc eax
cmp eax, 3
mov dword [0x626edc], eax
jle 0x57cc49
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
xor ebx, ebx
cmp esi, edi
mov dword [0x626edc], ebx
mov byte [esp + 0x3b8], 0x11
je 0x57cbbc
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, edi
jne 0x57cbaa
mov esi, dword [esp + 0x44]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3b8], 0x10
call fcn.005581a0
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
cmp esi, eax
mov byte [esp + 0x3b8], 0xf
mov edi, eax
je 0x57cc0a
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, edi
jne 0x57cbf8
mov esi, dword [esp + 0x2c]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x68]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov byte [esp + 0x3b8], 0xe
call fcn.00558a00
lea ecx, [esp + 0x78]
mov dword [esp + 0x3b8], 0xffffffff
call fcn.00558a00
jmp case.0x57ba12.10
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
cmp esi, edi
mov byte [esp + 0x3b8], 0x11
je 0x57cc6f
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, edi
jne 0x57cc5d
mov esi, dword [esp + 0x44]
push esi
call fcn.005bc500
xor ebx, ebx
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3b8], 0x10
call fcn.005581a0
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
cmp esi, eax
mov byte [esp + 0x3b8], 0xf
mov edi, eax
je 0x57ccbf
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, edi
jne 0x57ccad
mov esi, dword [esp + 0x2c]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x68]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov byte [esp + 0x3b8], 0xe
call fcn.00558a00
lea ecx, [esp + 0x78]
mov dword [esp + 0x3b8], 0xffffffff
call fcn.00558a00
jmp case.0x57ba12.10
xor esi, esi
test ebp, ebp
jle 0x57cd22
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + esi + 1]
lea ecx, [esp + 0x14]
push edx
call fcn.00558380
mov byte [esp + esi + 0xb0], al
inc esi
cmp esi, ebp
jl 0x57cd04
xor esi, esi
test edi, edi
jle 0x57cd78
mov eax, esi
lea ecx, [esp + 0x28]
cdq
idiv ebx
and eax, 0xffff
inc eax
push eax
call fcn.00402a80
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00558070
lea ecx, [esp + 0x18]
call fcn.00558390
mov eax, esi
mov ecx, dword [esp + 0x1c]
cdq
idiv ebx
add edx, ecx
lea ecx, [esp + 0x14]
push edx
call fcn.00558380
lea ecx, [esp + ebp + 0xb0]
inc esi
cmp esi, edi
mov byte [esi + ecx - 1], al
jl 0x57cd28
lea ecx, [edi + ebp]
lea esi, [esp + 0xb0]
mov dword [esp + 0x54], ecx
mov eax, ecx
lea edi, [esp + 0x1b0]
lea edx, [esp + 0x1b0]
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 + 0x50]
add ebp, ecx
lea ecx, [esp + 0x18]
push ebp
push edx
call fcn.00558100
mov esi, dword [esp + 0x3c0]
mov bl, 0x17
mov ecx, esi
mov byte [esp + 0x3b8], bl
call fcn.0055a260
mov al, byte [esp + 0x13]
xor edi, edi
mov byte [esp + 0x58], al
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
lea ecx, [esp + 0x18]
mov byte [esp + 0x3b8], 0x18
push ecx
push 1
push edi
lea ecx, [esp + 0x64]
call fcn.00402a90
lea edx, [esp + 0x58]
mov ecx, esi
push edx
call fcn.00559fd0
mov eax, dword [esp + 0x3c4]
cmp eax, edi
je 0x57ce12
mov dword [eax], edi
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
cmp esi, ebp
mov byte [esp + 0x3b8], bl
je 0x57ce37
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, ebp
jne 0x57ce25
mov esi, dword [esp + 0x5c]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov byte [esp + 0x3b8], 0x12
call fcn.005581a0
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
cmp esi, eax
mov byte [esp + 0x3b8], 0x11
mov ebp, eax
je 0x57ce85
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, ebp
jne 0x57ce73
mov esi, dword [esp + 0x44]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov byte [esp + 0x3b8], 0x10
call fcn.005581a0
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
cmp esi, eax
mov byte [esp + 0x3b8], 0xf
mov ebp, eax
je 0x57ced3
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, ebp
jne 0x57cec1
mov esi, dword [esp + 0x2c]
push esi
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x68]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov byte [esp + 0x3b8], 0xe
call fcn.00558a00
lea ecx, [esp + 0x78]
mov dword [esp + 0x3b8], 0xffffffff
call fcn.00558a00
mov eax, dword [esp + 0x54]
jmp 0x57d3ae
mov ebp, dword [esp + 0x3c0]
mov ecx, ebp
call fcn.0055a240
test ax, ax
mov dword [esp + 0x1c], 0
jbe case.0x57ba12.10
xor edi, edi
and eax, 0xffff
mov dword [esp + 0x54], eax
jle 0x57cfdb
xor ebx, ebx
push edi
mov ecx, ebp
call fcn.0055a180
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x57cfce
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jae 0x57cfce
push edi
mov ecx, ebp
xor esi, esi
call fcn.0055a180
mov eax, dword [eax + 4]
lea ecx, [eax + ebx*4]
call fcn.00558520
test ax, ax
jle 0x57cfc8
push edi
mov ecx, ebp
call fcn.0055a180
mov eax, dword [eax + 4]
push esi
lea ecx, [eax + ebx*4]
call fcn.00558380
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x1b0], al
inc ecx
cmp ecx, 0xff
mov dword [esp + 0x1c], ecx
jg 0x57d053
push edi
mov ecx, ebp
inc esi
call fcn.0055a180
mov eax, dword [eax + 4]
lea ecx, [eax + ebx*4]
call fcn.00558520
movsx ecx, ax
cmp esi, ecx
jl 0x57cf7d
inc ebx
jmp 0x57cf48
mov eax, dword [esp + 0x54]
inc edi
cmp edi, eax
jl 0x57cf46
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x1b0]
push edx
push eax
lea ecx, [esp + 0x20]
call fcn.00558100
push ecx
lea edx, [esp + 0x1c]
mov ebx, 0x1b
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
mov dword [esp + 0x3c0], ebx
call fcn.00558070
push 0
push 0
mov ecx, ebp
mov byte [esp + 0x3c4], bl
call fcn.0055a180
mov ecx, eax
call fcn.00402a80
mov ecx, eax
call fcn.00558390
mov eax, dword [esp + 0x3c4]
test eax, eax
je 0x57d03f
mov dword [eax], 0
mov dword [esp + 0x3b8], 0xffffffff
lea ecx, [esp + 0x18]
jmp 0x57d3a7
mov eax, dword [esp + 0x1c]
jmp 0x57d3ae
mov ebp, dword [esp + 0x3c0]
mov ecx, ebp
call fcn.0055a240
test ax, ax
jle case.0x57ba12.10
lea eax, [esp + 0x24]
mov ecx, ebp
push eax
call fcn.0055a190
push 1
lea ecx, [esp + 0x28]
mov dword [esp + 0x3bc], 0x1d
call fcn.00558380
and eax, 0xff
sub eax, 0x55
mov edi, eax
call fcn.00557e00
test al, al
je 0x57d0ad
mov edi, 0x30
xor esi, esi
test edi, edi
jle 0x57d0cc
lea ecx, [esi + 2]
push ecx
lea ecx, [esp + 0x28]
call fcn.00558380
mov byte [esp + esi + 0x1b0], al
inc esi
cmp esi, edi
jl 0x57d0b3
lea ecx, [esp + 0x24]
call fcn.00558520
lea edx, [esp + 0x1b0]
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00558100
push ecx
lea eax, [esp + 0x1c]
mov bl, 0x1e
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
mov byte [esp + 0x3c0], bl
call fcn.00558070
push 0
push 0
mov ecx, ebp
mov byte [esp + 0x3c4], bl
call fcn.0055a180
mov ecx, eax
call fcn.00402a80
mov ecx, eax
call fcn.00558390
mov eax, dword [esp + 0x3c4]
test eax, eax
je 0x57d132
mov dword [eax], 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x3b8], 0x1d
call fcn.005581a0
lea ecx, [esp + 0x24]
mov dword [esp + 0x3b8], 0xffffffff
call fcn.005581a0
mov eax, edi
jmp 0x57d3ae
mov ebp, dword [esp + 0x3c0]
mov ecx, ebp
call fcn.0055a240
test ax, ax
jle case.0x57ba12.10
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebp
call fcn.0055a190
push 0
lea ecx, [esp + 0x24]
mov dword [esp + 0x3bc], 0x20
call fcn.00558380
mov bl, al
dec bl
mov byte [esp + 0x18], bl
call fcn.00557e00
test al, al
je 0x57d1ae
mov bl, 0x2d
mov byte [esp + 0x18], bl
mov edi, dword [esp + 0x18]
xor esi, esi
and edi, 0xff
jle 0x57d1d5
lea edx, [esi + 1]
lea ecx, [esp + 0x20]
push edx
call fcn.00558380
mov byte [esp + esi + 0x1b0], al
inc esi
cmp esi, edi
jl 0x57d1bc
xor ax, ax
lea ecx, [esp + 0x1b0]
mov al, bl
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.00558100
push ecx
lea edx, [esp + 0x58]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
mov byte [esp + 0x3c0], 0x21
call fcn.00558070
push 0
push 0
mov ecx, ebp
mov byte [esp + 0x3c4], 0x21
call fcn.0055a180
mov ecx, eax
call fcn.00402a80
mov ecx, eax
call fcn.00558390
mov eax, dword [esp + 0x3c4]
test eax, eax
je 0x57d237
mov dword [eax], 0
lea ecx, [esp + 0x54]
mov byte [esp + 0x3b8], 0x20
call fcn.005581a0
lea ecx, [esp + 0x20]
mov dword [esp + 0x3b8], 0xffffffff
call fcn.005581a0
mov eax, edi
jmp 0x57d3ae
mov edi, dword [esp + 0x3c0]
mov ecx, edi
call fcn.0055a240
test ax, ax
jle case.0x57ba12.10
lea eax, [esp + 0x24]
mov ecx, edi
push eax
call fcn.0055a190
lea ecx, [esp + 0x24]
mov dword [esp + 0x3b8], 0x23
xor esi, esi
call fcn.00558520
test ax, ax
jle 0x57d2c3
push esi
lea ecx, [esp + 0x28]
call fcn.00558380
mov byte [esp + esi + 0x1b0], al
lea ecx, [esp + 0x24]
inc esi
call fcn.00558520
movsx ecx, ax
cmp esi, ecx
jl 0x57d2a1
lea ecx, [esp + 0x24]
call fcn.00558520
lea edx, [esp + 0x1b0]
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00558100
push ecx
lea eax, [esp + 0x1c]
mov bl, 0x24
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
mov byte [esp + 0x3c0], bl
call fcn.00558070
push 0
push 0
mov ecx, edi
mov byte [esp + 0x3c4], bl
call fcn.0055a180
mov ecx, eax
call fcn.00402a80
mov ecx, eax
call fcn.00558390
mov eax, dword [esp + 0x3c4]
test eax, eax
je 0x57d329
mov dword [eax], 0
lea ecx, [esp + 0x24]
call fcn.00558520
lea ecx, [esp + 0x18]
mov byte [esp + 0x3b8], 0x23
movsx esi, ax
call fcn.005581a0
lea ecx, [esp + 0x24]
mov dword [esp + 0x3b8], 0xffffffff
call fcn.005581a0
mov eax, esi
jmp 0x57d3ae
mov esi, dword [esp + 0x3c0]
mov ecx, esi
call fcn.0055a240
test ax, ax
jle case.0x57ba12.10
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
call fcn.0055a190
mov ebx, 0x26
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3b8], ebx
call fcn.00558520
cmp ax, 4
jge 0x57d3c9
mov dword [esp + 0x3b8], 0xffffffff
lea ecx, [esp + 0x1c]
call fcn.005581a0
xor eax, eax
mov ecx, dword [esp + 0x3b0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x3ac
ret 8
push ecx
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.00558070
push 0
push 0
mov ecx, esi
mov byte [esp + 0x3c4], bl
call fcn.0055a180
mov ecx, eax
call fcn.00402a80
mov ecx, eax
call fcn.00558390
lea ecx, [esp + 0x1c]
call fcn.00558520
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3b8], 0xffffffff
movsx esi, ax
call fcn.005581a0
mov eax, esi
jmp 0x57d3ae