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

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
push edi
xor eax, eax
mov dword [esp + 0x2c], 0
cmp dword [esp + 0x84], eax
mov ecx, 0x96
setne al
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x78]
lea edx, [ecx + 1]
lea eax, [eax*8 + 0xc]
mov dword [esp + 0x20], 0x86
add eax, dword [esp + 0x80]
mov esi, dword [ebp]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x84]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x88]
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0xc0]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0xc8]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0xe0]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0xe4]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0xf0]
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [ebp + 0x1c], eax
movzx eax, word [ebx]
mov dword [esp + 0x48], 0
cmp ax, cx
je 0x570923
cmp ax, dx
jne 0x57092a
mov dword [esp + 0x20], eax
add ebx, 2
mov eax, dword [ebp + 0xc]
mov ecx, ebx
sub ecx, dword [ebp + 8]
sar ecx, 1
mov edi, dword [eax + ecx*4]
lea eax, [esp + 0x1c]
push eax
push 0
push 0
push ebx
push ebp
mov dword [esp + 0x28], edi
call fcn.00586e40
mov ecx, eax
add esp, 0x14
mov eax, dword [esp + 0x80]
mov edx, 0x80
mov dword [esp + 0x18], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edi
movzx eax, word [ebx]
mov dword [esp + 0x24], eax
cmp eax, 0x7e
je 0x57097b
cmp ax, dx
mov eax, dword [esp + 0x44]
jne 0x57097f
lea eax, [esp + 0x48]
mov dword [esp + 0x40], eax
mov edx, 0x97
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
cmp ax, dx
jne 0x5709f3
cmp dword [esi], 0
jne 0x5709be
push 0
push 0x8b
push 0
push 2
push 1
push esi
call fcn.00583520
add esp, 0x18
test eax, eax
je 0x5709be
mov byte [eax], 0x8b
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push dword [ebp]
call fcn.0058f130
push 0
push 0x40
push 0
push 2
push 0
push esi
call fcn.0058d8e0
mov ecx, dword [esp + 0x50]
add esp, 0x38
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
mov edx, 0x86
test ecx, ecx
jns 0x570b1f
mov edi, 1
mov dword [esp + 0x10], edi
cmp ax, dx
jne 0x570a56
movzx edx, word [ebx + 4]
lea ecx, [ebx + 4]
lea eax, [edx - 4]
cmp eax, 0x75
ja case.0x570a27.6
nop dword [eax]
movzx eax, byte [eax + 0x5718b4]
jmp dword [eax*4 + 0x5718a4]
movzx eax, word [ecx + 6]
jmp 0x570a3b
movzx eax, byte [edx + 0x6b8bf8]
movzx edx, word [ecx + eax*2]
lea ecx, [ecx + eax*2]
lea eax, [edx - 4]
cmp eax, 0x75
jbe 0x570a20
jmp case.0x570a27.6
xor edi, edi
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 0
je 0x570a62
inc edi
mov dword [esp + 0x10], edi
cmp ecx, 0xffffffff
jne 0x570a8f
cmp dword [esi], 0
jne 0x570a8f
mov eax, dword [esp + 0x14]
add eax, 0x20
push eax
push 0x8d
push 0
push 0xb
push 1
push esi
call fcn.00583520
add esp, 0x18
test eax, eax
je 0x570a8f
mov byte [eax], 0x89
test edi, edi
je 0x570a9d
push edi
push ebp
call fcn.0056ecb0
add esp, 8
cmp dword [esp + 0x1c], 0
je 0x570acb
cmp dword [esi], 0
mov eax, dword [ebp + 0x44]
jne 0x570acb
add eax, 0x20
push eax
push 0x8d
push 0
push 1
push 1
push esi
call fcn.00583520
add esp, 0x18
test eax, eax
je 0x570acb
mov byte [eax], 0x8b
test edi, edi
je 0x570ae5
push 0
push 2
push 0
push 0x8b
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
cmp dword [esp + 0x1c], 0
je 0x570c29
push 0
push 0x40
push dword [ebp + 0x44]
push 0x8d
push 0x20
push esi
call fcn.0058eef0
push 0
push 1
push 4
push 0x8b
push 0x20
push esi
call fcn.0058eef0
add esp, 0x30
jmp 0x570c29
xor eax, eax
cmp dword [esp + 0x1c], eax
setne al
add eax, 2
mov dword [esp + 0x10], eax
lea edi, [eax + ecx]
push edi
push ebp
call fcn.0056ecb0
push dword [esp + 0x1c]
push 0x8d
push 0
push 1
push 0x20
push esi
call fcn.0058eef0
lea eax, [edi*4]
push eax
push 0x40
push 0
push 0xb
push 0
push 3
push 0x60
push esi
call fcn.0058f130
add esp, 0x40
push 0
push 3
push dword [esp + 0x1c]
push 0x8d
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
cmp dword [esp + 0x1c], 0
je 0x570ba1
push dword [ebp + 0x44]
push 0x8d
push 0
push 3
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
push 0
push 2
push 0
push 0x8b
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
cmp dword [esp + 0x1c], 0
je 0x570bf4
push 0
push 1
push 8
push 0x8b
push 0x20
push esi
call fcn.0058eef0
push 0
push 3
push 4
push 0x8b
push 0x20
push esi
call fcn.0058eef0
mov ecx, dword [ebp + 0x44]
mov eax, 0x8d
add esp, 0x30
lea edx, [eax - 0x4d]
jmp 0x570c03
mov eax, 0x8b
mov ecx, 4
mov edx, 1
push 0
push edx
push ecx
push eax
push 0x20
push esi
call fcn.0058eef0
mov eax, dword [esp + 0x28]
push eax
lea eax, [edi - 1]
push eax
push 0
push ebx
push ebp
call fcn.00587b40
mov edi, dword [esp + 0x3c]
add esp, 0x2c
cmp dword [esp + 0x84], 0
xorps xmm0, xmm0
mov eax, dword [esp + 0x24]
mov ecx, 0x81
movlpd qword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
jne 0x570c58
cmp ax, 0x7f
je 0x570c58
cmp ax, cx
jne 0x570c7e
mov dword [esp + 0x2c], 1
mov dword [ebp + 0x84], 1
mov dword [ebp + 0xc0], 0
mov dword [ebp + 0xe0], 0
cmp ax, 0x7e
je 0x570c92
mov ecx, 0x80
cmp ax, cx
je 0x570c92
xor eax, eax
jmp 0x570c97
mov eax, 1
mov ecx, dword [esp + 0x28]
mov dword [ebp + 0x88], eax
mov dword [ebp + 0xe4], 0
nop dword [eax + eax]
mov dword [ebp + 0xc8], 0
mov dword [ebp + 0xf0], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
cmp word [ebx], 0x78
jne 0x570cf8
test edi, edi
je 0x570cf8
push 0
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058eef0
mov ecx, dword [esp + 0x40]
add esp, 0x18
lea eax, [esp + 0x60]
mov dword [esp + 0x70], ebx
push eax
push ecx
lea eax, [ebx + 4]
push eax
push ebp
call fcn.00578940
add esp, 0x10
cmp dword [esi], 0
jne 0x571843
push esi
call fcn.0058ecc0
mov edx, dword [ebp + 0xf0]
add esp, 4
mov edi, eax
mov dword [ebp + 0xc8], edi
test edx, edx
je 0x570d53
mov ecx, dword [edx]
test ecx, ecx
je 0x570d4c
test edi, edi
je 0x570d4c
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], edi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x570d33
mov ebx, dword [esp + 0x18]
test ebx, ebx
jns 0x570dc8
cmp ebx, 0xffffffff
jne 0x570d7a
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
jmp 0x570d9d
mov eax, dword [esp + 0x10]
test eax, eax
je 0x570d9d
shl eax, 2
push eax
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push dword [ebp]
call fcn.0058f130
add esp, 0x20
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x570ecd
push 0xfffffffffffffffc
push 0x8b
push dword [ebp + 0x44]
push 0x8d
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
jmp 0x570ec9
mov eax, dword [esp + 0x24]
cmp ax, 0x7f
je 0x570ddc
mov ecx, 0x81
cmp ax, cx
jne 0x570de6
cmp dword [esp + 0x84], 0
je 0x570e38
mov edi, dword [esp + 0x14]
lea eax, [ebx*4 + 4]
push eax
push 0x40
push edi
push 0x8d
push 0
push 0xb
push 0x62
push esi
call fcn.0058f130
mov ecx, dword [esp + 0x3c]
add esp, 0x20
test ecx, ecx
je 0x570ed1
push 0xfffffffffffffffc
push 0x8b
push dword [ebp + 0x44]
push 0x8d
push 0x20
push esi
call fcn.0058eef0
mov ecx, dword [esp + 0x34]
add esp, 0x18
jmp 0x570ed1
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
cmp dword [esp + 0x1c], 0
je 0x570e7a
mov eax, 0xfffffffe
sub eax, ebx
shl eax, 2
push eax
push 0x8b
push dword [ebp + 0x44]
push 0x8d
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
push 0x23
push esi
call fcn.0058ec30
add esp, 8
mov edi, eax
cmp dword [esi], 0
jne 0x570eac
push 8
push esi
call fcn.00583880
add esp, 8
test eax, eax
je 0x570eac
mov ecx, dword [ebp + 0xfc]
mov dword [eax + 4], ecx
mov dword [eax], edi
mov dword [ebp + 0xfc], eax
lea eax, [ebx*4 - 4]
push eax
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push esi
call fcn.0058f130
add esp, 0x20
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
cmp ax, 0x7f
je 0x570ee9
mov edx, 0x81
cmp ax, dx
jne 0x570fe7
cmp dword [esp + 0x84], 0
je 0x570f1b
cmp dword [esp + 0x10], 0
je 0x570fe7
xor eax, eax
test ecx, ecx
sete al
lea eax, [eax*4 - 8]
push eax
push 0x8b
push 0
push 2
jmp 0x570fdc
mov eax, 0x96
cmp word [esp + 0x20], ax
jne 0x570fc4
test ebx, ebx
jns 0x570f44
lea edi, [eax - 0xb]
xor edx, edx
mov eax, dword [esp + 0x10]
mov ecx, 2
neg eax
shl eax, 2
jmp 0x570f8c
or eax, 0xffffffff
sub eax, ebx
shl eax, 2
push eax
push 0x8b
push 0
push 1
push 0x20
push esi
call fcn.0058eef0
mov eax, dword [esp + 0x28]
add eax, ebx
neg eax
shl eax, 2
push eax
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058eef0
add esp, 0x30
mov edx, edi
mov ecx, 0x8d
mov edi, 1
xor eax, eax
push eax
push edi
push edx
push ecx
push 0x20
push esi
call fcn.0058eef0
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push esi
call fcn.0058f130
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0058eef0
add esp, 0x50
jmp 0x570fe7
test ebx, ebx
js 0x570fe7
or eax, 0xffffffff
sub eax, ebx
shl eax, 2
push eax
push 0x8b
push edi
push 0x8d
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
push 0x22
push esi
call fcn.0058ec30
add esp, 8
mov edi, eax
cmp dword [esi], 0
jne 0x571015
push 8
push esi
call fcn.00583880
add esp, 8
test eax, eax
je 0x571015
mov edx, dword [esp + 0x40]
mov ecx, dword [edx]
mov dword [eax + 4], ecx
mov dword [eax], edi
mov dword [edx], eax
push dword [esp + 0x68]
push ebp
call fcn.00571930
add esp, 8
cmp dword [esi], 0
jne 0x571843
push esi
call fcn.0058ecc0
mov edx, dword [esp + 0x70]
add esp, 4
mov edi, eax
test edx, edx
je 0x571060
nop
mov ecx, dword [edx]
test ecx, ecx
je 0x571059
test edi, edi
je 0x571059
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], edi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x571040
mov ecx, dword [esp + 0x28]
cmp word [ecx], 0x78
jne 0x571080
movzx eax, word [ecx + 2]
mov ebx, ecx
mov edi, dword [esp + 0x10]
lea ecx, [ecx + eax*2]
mov dword [esp + 0x28], ecx
jmp 0x570cb0
cmp dword [esp + 0x2c], 0
je 0x571095
mov eax, dword [ebp + 0xe0]
mov dword [ebp + 0xe4], eax
jmp 0x57109b
mov eax, dword [ebp + 0xe4]
test eax, eax
je 0x57116d
push 0x22
push esi
call fcn.0058ec30
push esi
mov ebx, eax
call fcn.0058ecc0
mov edx, dword [ebp + 0xe4]
add esp, 0xc
mov edi, eax
test edx, edx
je 0x5710e2
mov ecx, dword [edx]
test ecx, ecx
je 0x5710db
test edi, edi
je 0x5710db
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], edi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x5710c2
mov eax, dword [esp + 0x10]
lea edi, [eax*4]
mov eax, dword [esp + 0x18]
test eax, eax
jns 0x571100
mov ecx, dword [esp + 0x14]
mov eax, 0x8d
jmp 0x571138
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push esi
call fcn.0058eef0
push 0x23
push esi
call fcn.0058ec30
push eax
lea eax, [ebp + 0xfc]
push eax
push esi
call fcn.0056ec80
add esp, 0x2c
xor ecx, ecx
mov eax, 0xb
add edi, 4
push edi
push 0x40
push ecx
push eax
push 0
push 0xb
push 0x62
push esi
call fcn.0058f130
push esi
call fcn.0058ecc0
add esp, 0x24
test ebx, ebx
je 0x571169
test eax, eax
je 0x571169
mov ecx, dword [ebx + 8]
and ecx, 0xfffffffd
mov dword [ebx + 0xc], eax
or ecx, 1
mov dword [ebx + 8], ecx
mov ebx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 0
je 0x57118e
push 4
push 0x8b
push dword [ebp + 0x44]
push 0x8d
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
mov eax, dword [esp + 0x24]
cmp ax, 0x7e
je 0x571373
mov ecx, 0x80
cmp ax, cx
je 0x571373
test ebx, ebx
jns 0x571218
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5711d0
push 0
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058eef0
mov eax, dword [esp + 0x28]
add esp, 0x18
mov ebx, 0x86
cmp word [esp + 0x20], bx
je 0x571201
cmp eax, 2
jne 0x5711ec
push 1
push ebp
call fcn.00586ce0
add esp, 8
mov ecx, 0x8b
mov dword [esp + 0x14], 0
lea edx, [ecx - 0x4b]
jmp 0x571291
test eax, eax
je 0x5717e0
push eax
push ebp
call fcn.00586ce0
add esp, 8
jmp 0x5717e0
push 0
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058eef0
mov ebx, dword [esp + 0x28]
lea eax, [ebx*4 - 4]
push eax
push 0x8b
push 0
push 1
push 0x20
push esi
call fcn.0058eef0
mov eax, dword [esp + 0x48]
add esp, 0x30
add eax, ebx
mov ebx, 0x86
cmp word [esp + 0x20], bx
je 0x57127d
dec eax
push eax
push ebp
call fcn.00586ce0
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0058eef0
add esp, 0x20
jmp 0x571287
push eax
push ebp
call fcn.00586ce0
add esp, 8
mov ecx, 0x8d
mov edx, 1
push 0
push edx
push dword [esp + 0x1c]
mov eax, esi
push ecx
push 0x20
push eax
call fcn.0058eef0
mov eax, dword [esp + 0x38]
mov edx, 0x96
add esp, 0x18
cmp ax, dx
jne 0x5712c9
push esi
call fcn.0058ecc0
mov ebx, dword [esp + 0x84]
add esp, 4
mov dword [ebx + 0x20], eax
jmp 0x571335
mov ecx, 0x97
cmp ax, cx
jne 0x571325
mov ebx, dword [esp + 0x80]
push 0x22
push esi
mov edi, dword [ebx + 0x20]
call fcn.0058ec30
add esp, 8
test eax, eax
je 0x5712ff
test edi, edi
je 0x5712ff
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edi
or ecx, 1
mov dword [eax + 8], ecx
push esi
call fcn.0058ecc0
mov edx, dword [esp + 0x34]
add esp, 4
test edx, edx
je 0x571335
test eax, eax
je 0x571335
mov ecx, dword [edx + 8]
and ecx, 0xfffffffd
mov dword [edx + 0xc], eax
or ecx, 1
mov dword [edx + 8], ecx
jmp 0x571335
cmp ax, bx
je 0x5717e0
mov ebx, dword [esp + 0x80]
push esi
call fcn.0058ecc0
mov edx, dword [ebx + 0xc]
add esp, 4
mov esi, eax
test edx, edx
je 0x571367
mov ecx, dword [edx]
test ecx, ecx
je 0x571360
test esi, esi
je 0x571360
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x571347
mov dword [ebx + 0xc], 0
jmp 0x5717e0
cmp dword [esp + 0x84], 0
mov ebx, dword [esp + 0x10]
je 0x571385
test ebx, ebx
jne 0x571393
mov eax, dword [esp + 0x20]
mov ecx, 0x96
cmp ax, cx
jne 0x5713b2
push 0
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058eef0
mov eax, dword [esp + 0x38]
add esp, 0x18
mov ecx, 0x96
mov edi, dword [esp + 0x18]
test edi, edi
jns 0x571415
cmp ax, cx
jne 0x5713f4
cmp ebx, 2
jne 0x5713cf
push 1
push ebp
call fcn.00586ce0
add esp, 8
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0058eef0
push 0x22
push esi
call fcn.0058ec30
add esp, 0x20
mov ebx, eax
jmp 0x5714a9
test ebx, ebx
je 0x571482
push ebx
push ebp
call fcn.00586ce0
push 0x22
push esi
call fcn.0058ec30
add esp, 0x10
mov ebx, eax
jmp 0x57149b
lea eax, [ebx*4 - 4]
push eax
push 0x8b
push 0
push 1
push 0x20
push esi
call fcn.0058eef0
mov edx, 0x96
lea eax, [ebx + edi]
add esp, 0x18
cmp word [esp + 0x20], dx
jne 0x571460
dec eax
push eax
push ebp
call fcn.00586ce0
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0058eef0
add esp, 0x20
jmp 0x57146a
push eax
push ebp
call fcn.00586ce0
add esp, 8
push 0
push 1
push dword [esp + 0x1c]
push 0x8d
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
push 0x22
push esi
call fcn.0058ec30
mov ebx, eax
add esp, 8
mov eax, 0x96
cmp word [esp + 0x20], ax
je 0x5714a9
push ebx
push dword [esp + 0x48]
push esi
call fcn.0056ec80
add esp, 0xc
push esi
call fcn.0058ecc0
mov edx, dword [esp + 0x4c]
add esp, 4
mov edi, eax
test edx, edx
je 0x5714e0
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x5714d9
test edi, edi
je 0x5714d9
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], edi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x5714c0
mov eax, dword [esp + 0x18]
test eax, eax
jns 0x571595
mov edi, dword [esp + 0x10]
test edi, edi
je 0x571510
mov eax, edi
neg eax
shl eax, 2
push eax
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
mov eax, dword [esp + 0x20]
mov edx, 0x96
cmp ax, dx
jne 0x571558
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push esi
call fcn.0058f130
add esp, 0x20
cmp edi, 2
jne 0x57169a
push 0
push edi
push 0
push 0x8b
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
jmp 0x57169a
mov ecx, 0x97
cmp ax, cx
jne 0x5717e0
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push esi
call fcn.0058f130
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0058eef0
add esp, 0x38
jmp 0x5716dc
mov edi, dword [esp + 0x20]
mov ecx, 0x86
cmp di, cx
jne 0x5715ea
lea eax, [eax*4 + 4]
push eax
push 0x40
push dword [esp + 0x1c]
push 0x8d
push 0
push 0xb
push 0x62
push esi
call fcn.0058f130
mov eax, dword [esp + 0x30]
mov ecx, 4
shl eax, 2
sub ecx, eax
push ecx
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058eef0
add esp, 0x38
jmp 0x5717e0
lea eax, [eax*4 + 8]
push eax
push 0x40
push dword [esp + 0x1c]
push 0x8d
push 0
push 0xb
push 0x62
push esi
call fcn.0058f130
add esp, 0x20
cmp dword [esp + 0x10], 2
jne 0x57164e
push 0
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058eef0
mov ecx, 0x97
add esp, 0x18
cmp di, cx
jne 0x571690
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
jmp 0x5716dc
push 0xfffffffffffffffc
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058eef0
mov edx, 0x96
mov ecx, 2
push 0
cmp di, dx
mov eax, 0x40
cmove eax, ecx
push eax
push 0
push 0x8b
push 0x20
push esi
call fcn.0058eef0
add esp, 0x30
mov ecx, 0x97
mov eax, 0x96
cmp di, ax
jne 0x5716d3
push esi
call fcn.0058ecc0
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x80]
mov dword [eax + 0x20], ecx
test ebx, ebx
je 0x5717e0
test ecx, ecx
je 0x5717e0
mov eax, dword [ebx + 8]
and eax, 0xfffffffd
mov dword [ebx + 0xc], ecx
or eax, 1
mov dword [ebx + 8], eax
jmp 0x5717e0
cmp di, cx
jne 0x5717e0
mov eax, dword [esp + 0x80]
push 0x22
push esi
mov edi, dword [eax + 0x20]
call fcn.0058ec30
add esp, 8
test eax, eax
je 0x571708
test edi, edi
je 0x571708
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edi
or ecx, 1
mov dword [eax + 8], ecx
push esi
call fcn.0058ecc0
mov edx, dword [esp + 0x34]
add esp, 4
test edx, edx
je 0x57172c
test eax, eax
je 0x57172c
mov ecx, dword [edx + 8]
and ecx, 0xfffffffd
mov dword [edx + 0xc], eax
or ecx, 1
mov dword [edx + 8], ecx
mov ebx, dword [esp + 0x18]
test ebx, ebx
js 0x5717a5
mov edi, dword [esp + 0x14]
push edi
push 0x8d
push 0
push 0xb
push 0x20
push esi
call fcn.0058eef0
push 0x23
push esi
call fcn.0058ec30
push eax
lea eax, [ebp + 0xfc]
push eax
push esi
call fcn.0056ec80
push 0xfffffffffffffff8
push 0x8b
push 0
push 1
push 0x20
push esi
call fcn.0058eef0
add esp, 0x44
lea eax, [ebx*4 - 4]
push eax
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push esi
call fcn.0058f130
push 0
push 1
push edi
push 0x8d
push 0x20
push esi
call fcn.0058eef0
add esp, 0x38
push esi
call fcn.0058ecc0
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x5717e0
nop
mov ecx, dword [edx]
test ecx, ecx
je 0x5717d9
test esi, esi
je 0x5717d9
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x5717c0
cmp dword [esp + 0x2c], 0
je 0x571805
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x84], eax
mov eax, dword [esp + 0x38]
mov dword [ebp + 0xc0], eax
mov eax, dword [esp + 0x3c]
mov dword [ebp + 0xe0], eax
mov eax, dword [esp + 0x4c]
mov dword [ebp + 0x88], eax
mov eax, dword [esp + 0x50]
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0x54]
mov dword [ebp + 0xc8], eax
mov eax, dword [esp + 0x58]
mov dword [ebp + 0xe4], eax
mov eax, dword [esp + 0x5c]
pop edi
mov dword [ebp + 0xf0], eax
mov eax, dword [esp + 0x24]
pop esi
pop ebp
add eax, 4
pop ebx
add esp, 0x64
ret
cmp dword [esp + 0x2c], 0
je 0x571868
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x84], eax
mov eax, dword [esp + 0x38]
mov dword [ebp + 0xc0], eax
mov eax, dword [esp + 0x3c]
mov dword [ebp + 0xe0], eax
mov eax, dword [esp + 0x4c]
mov dword [ebp + 0x88], eax
mov eax, dword [esp + 0x50]
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0x54]
mov dword [ebp + 0xc8], eax
mov eax, dword [esp + 0x58]
pop edi
mov dword [ebp + 0xe4], eax
mov eax, dword [esp + 0x58]
pop esi
mov dword [ebp + 0xf0], eax
xor eax, eax
pop ebp
pop ebx
add esp, 0x64
ret