Function at 0x10028f3f
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
mov eax, dword [0x1015f1d4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov ecx, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x1c], ecx
nop
cmp edi, dword [ecx]
jb 0x10028edc
mov eax, edi
sub eax, dword [ecx + 4]
cmp eax, dword [ecx + 0x10]
je 0x10029c35
push dword [ecx + 0x48]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.10050810
cmp byte [ebp - 0xc], 0
mov edi, dword [ebp - 0x10]
jne 0x10029c65
movzx ebx, byte [edi]
lea eax, [edi + 1]
mov dword [ebp - 8], eax
cmp ebx, 0x80
jae 0x10028ef1
mov edi, eax
jmp 0x10028f1f
movzx ecx, byte [eax]
add ebx, 0xffffff80
mov eax, ecx
shl eax, 7
add ebx, eax
cmp ecx, 0x80
jae 0x10028f0b
add edi, 2
jmp 0x10028f1f
push ebx
lea eax, [ebp - 0x18]
push edi
push eax
call fcn.10051360
mov ebx, dword [ebp - 0x14]
add esp, 0xc
mov edi, dword [ebp - 0x18]
mov eax, ebx
mov dword [ebp - 8], edi
shr eax, 3
dec eax
cmp eax, 0x6b
ja case.0x10028f38.12
movzx eax, byte [eax + 0x10029d5c]
jmp dword [eax*4 + 0x10029c7c]
cmp bl, 8
jne case.0x10028f38.12
or dword [esi + 8], 0x2000000
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0x78], eax
test edi, edi
je 0x10029c47
mov ecx, dword [ebp - 0x1c]
jmp 0x10028eb0
cmp bl, 0x10
jne case.0x10028f38.12
or dword [esi + 8], 0x4000000
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0x7c], eax
test edi, edi
jmp 0x10029be8
cmp bl, 0x18
jne case.0x10028f38.12
or dword [esi + 8], 0x8000000
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0x80], eax
test edi, edi
jmp 0x10029be8
cmp bl, 0x20
jne case.0x10028f38.12
or dword [esi + 8], 0x10000000
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0x84], eax
test edi, edi
jmp 0x10029be8
cmp bl, 0x28
jne case.0x10028f38.12
or dword [esi + 8], 0x20000000
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0x88], eax
test edi, edi
jmp 0x10029be8
cmp bl, 0x32
jne case.0x10028f38.12
or dword [esi + 8], 1
lea ecx, [esi + 0x14]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x1002903c
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.client_language
jmp 0x10029bc0
cmp bl, 0x38
jne case.0x10028f38.12
or dword [esi + 8], 0x40000000
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0x8c], eax
test edi, edi
jmp 0x10029be8
cmp bl, 0x40
jne case.0x10028f38.12
or dword [esi + 0xc], 0x80
lea eax, [ebp - 0x24]
push eax
push edi
call fcn.10024150
mov edi, eax
add esp, 8
mov eax, dword [ebp - 0x24]
or eax, dword [ebp - 0x20]
je 0x100290c8
mov al, 1
test edi, edi
mov byte [esi + 0xb4], al
jmp 0x10029be8
xor al, al
test edi, edi
mov byte [esi + 0xb4], al
jmp 0x10029be8
cmp bl, 0x4a
jne case.0x10028f38.12
or dword [esi + 8], 2
lea ecx, [esi + 0x18]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x100290f5
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.wine_version
jmp 0x10029bc0
cmp bl, 0x50
jne case.0x10028f38.12
or dword [esi + 8], 0x80000000
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0x90], eax
test edi, edi
jmp 0x10029be8
cmp bl, 0x5a
jne case.0x10028f38.12
or dword [esi + 8], 0x400000
mov eax, dword [esi + 0x6c]
test eax, eax
jne 0x1002917c
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x10029170
mov eax, dword [eax]
push eax
call fcn.10027650
add esp, 4
mov dword [esi + 0x6c], eax
mov ecx, dword [ebp - 0x1c]
push edi
push eax
call fcn.100510c0
mov edi, eax
test edi, edi
jmp 0x10029be8
cmp bl, 0xa0
jne case.0x10028f38.12
or dword [esi + 0xc], 1
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0x94], eax
test edi, edi
jmp 0x10029be8
cmp bl, 0xa8
jne case.0x10028f38.12
or dword [esi + 0xc], 4
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0xa0], eax
test edi, edi
jmp 0x10029be8
cmp bl, 0xb1
jne case.0x10028f38.12
or dword [esi + 0xc], 2
mov ecx, dword [edi + 4]
mov eax, dword [edi]
add edi, 8
mov dword [esi + 0x9c], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0x98], eax
jmp 0x10028eb0
cmp bl, 0xba
jne case.0x10028f38.12
or dword [esi + 8], 0x800000
mov eax, dword [esi + 0x70]
test eax, eax
jne 0x1002923b
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x1002922f
mov eax, dword [eax]
push eax
call fcn.10027650
add esp, 4
mov dword [esi + 0x70], eax
mov ecx, dword [ebp - 0x1c]
push edi
push eax
call fcn.100510c0
mov edi, eax
test edi, edi
jmp 0x10029be8
cmp bl, 0xf2
jne case.0x10028f38.12
or dword [esi + 8], 4
lea ecx, [esi + 0x1c]
jmp 0x100296c6
cmp bl, 0xf8
jne case.0x10028f38.12
or dword [esi + 0xc], 8
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0xa4], eax
test edi, edi
jmp 0x10029be8
test bl, bl
jne case.0x10028f38.12
or dword [esi + 0xc], 0x10
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0xa8], eax
test edi, edi
jmp 0x10029be8
cmp bl, 8
jne case.0x10028f38.12
or dword [esi + 0xc], 0x20
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0xac], eax
test edi, edi
jmp 0x10029be8
cmp bl, 0x4a
jne case.0x10028f38.12
or dword [esi + 8], 8
lea ecx, [esi + 0x20]
jmp 0x100296c6
cmp bl, 0x52
jne case.0x10028f38.12
or dword [esi + 8], 0x10
lea ecx, [esi + 0x24]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x10029310
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.email_address
jmp 0x10029bc0
cmp bl, 0x5d
jne case.0x10028f38.12
or dword [esi + 0xc], 0x40
mov eax, dword [edi]
add edi, 4
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0xb0], eax
jmp 0x10028eb0
cmp bl, 0x92
jne case.0x10028f38.12
or dword [esi + 8], 0x20
lea ecx, [esi + 0x28]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x10029378
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.account_name
jmp 0x10029bc0
cmp bl, 0x9a
jne case.0x10028f38.12
or dword [esi + 8], 0x40
lea ecx, [esi + 0x2c]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x100293c0
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.password
jmp 0x10029bc0
cmp bl, 0xa2
jne case.0x10028f38.12
or dword [esi + 8], 0x80
lea ecx, [esi + 0x30]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x1002940b
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.game_server_token
jmp 0x10029bc0
cmp bl, 0xe2
jne case.0x10028f38.12
or dword [esi + 8], 0x100
lea ecx, [esi + 0x34]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x10029456
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.login_key
jmp 0x10029bc0
cmp bl, 0x30
jne case.0x10028f38.12
or dword [esi + 0xc], 0x100
lea eax, [ebp - 0x2c]
push eax
push edi
call fcn.10024150
mov edi, eax
add esp, 8
mov eax, dword [ebp - 0x2c]
or eax, dword [ebp - 0x28]
je 0x100294b6
mov al, 1
test edi, edi
mov byte [esi + 0xb5], al
jmp 0x10029be8
xor al, al
test edi, edi
mov byte [esi + 0xb5], al
jmp 0x10029be8
cmp bl, 0x82
jne case.0x10028f38.12
or dword [esi + 8], 0x200
lea ecx, [esi + 0x38]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x100294e6
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.anon_user_target_account_name
jmp 0x10029bc0
cmp bl, 0x89
jne case.0x10028f38.12
or dword [esi + 0xc], 0x800
mov ecx, dword [edi + 4]
mov eax, dword [edi]
add edi, 8
mov dword [esi + 0xbc], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0xb8], eax
jmp 0x10028eb0
cmp bl, 0x90
jne case.0x10028f38.12
or dword [esi + 0xc], 0x1000
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0xc0], eax
test edi, edi
jmp 0x10029be8
cmp bl, 0x9a
jne case.0x10028f38.12
or dword [esi + 8], 0x400
lea ecx, [esi + 0x3c]
jmp 0x100296c6
cmp bl, 0xa2
jne case.0x10028f38.12
or dword [esi + 8], 0x800
lea ecx, [esi + 0x40]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x100295a1
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.auth_code
jmp 0x10029bc0
cmp bl, 0xa8
jne case.0x10028f38.12
or dword [esi + 0xc], 0x2000
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0xc4], eax
test edi, edi
jmp 0x10029be8
cmp bl, 0xb0
jne case.0x10028f38.12
or dword [esi + 0xc], 0x4000
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0xc8], eax
test edi, edi
jmp 0x10029be8
cmp bl, 0xba
jne case.0x10028f38.12
or dword [esi + 8], 0x1000
lea ecx, [esi + 0x44]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x10029644
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.otp_identifier
jmp 0x10029bc0
cmp bl, 0xc0
jne case.0x10028f38.12
or dword [esi + 0xc], 0x200
lea eax, [ebp - 0x34]
push eax
push edi
call fcn.10024150
mov edi, eax
add esp, 8
mov eax, dword [ebp - 0x34]
or eax, dword [ebp - 0x30]
je 0x100296a4
mov al, 1
test edi, edi
mov byte [esi + 0xb6], al
jmp 0x10029be8
xor al, al
test edi, edi
mov byte [esi + 0xb6], al
jmp 0x10029be8
cmp bl, 0xd2
jne case.0x10028f38.12
or dword [esi + 8], 0x2000
lea ecx, [esi + 0x48]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x100296d4
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
push edx
push edi
push eax
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
jmp 0x10029be8
cmp bl, 0xda
jne case.0x10028f38.12
or dword [esi + 8], 0x4000
lea ecx, [esi + 0x4c]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x10029712
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.sony_psn_service_id
jmp 0x10029bc0
cmp bl, 0xe0
jne case.0x10028f38.12
or dword [esi + 0xc], 0x400
lea eax, [ebp - 0x3c]
push eax
push edi
call fcn.10024150
mov edi, eax
add esp, 8
mov eax, dword [ebp - 0x3c]
or eax, dword [ebp - 0x38]
je 0x10029772
mov al, 1
test edi, edi
mov byte [esi + 0xb7], al
jmp 0x10029be8
xor al, al
test edi, edi
mov byte [esi + 0xb7], al
jmp 0x10029be8
cmp bl, 0xea
jne case.0x10028f38.12
or dword [esi + 8], 0x8000
lea ecx, [esi + 0x50]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x100297a2
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.sony_psn_name
jmp 0x10029bc0
cmp bl, 0xf0
jne case.0x10028f38.12
or dword [esi + 0xc], 0x8000
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0xcc], eax
test edi, edi
jmp 0x10029be8
cmp bl, 0xf8
jne case.0x10028f38.12
or dword [esi + 0xc], 0x20000
lea eax, [ebp - 0x44]
push eax
push edi
call fcn.10024150
mov edi, eax
add esp, 8
mov eax, dword [ebp - 0x44]
or eax, dword [ebp - 0x40]
je 0x1002982e
mov al, 1
test edi, edi
mov byte [esi + 0xd8], al
jmp 0x10029be8
xor al, al
test edi, edi
mov byte [esi + 0xd8], al
jmp 0x10029be8
cmp bl, 2
jne case.0x10028f38.12
or dword [esi + 8], 0x10000
lea ecx, [esi + 0x54]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x1002985e
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.machine_name
jmp 0x10029bc0
cmp bl, 0xa
jne case.0x10028f38.12
or dword [esi + 8], 0x20000
lea ecx, [esi + 0x58]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x100298a9
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.machine_name_userchosen
jmp 0x10029bc0
cmp bl, 0x12
jne case.0x10028f38.12
or dword [esi + 8], 0x40000
lea ecx, [esi + 0x5c]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x100298f4
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.country_override
jmp 0x10029bc0
cmp bl, 0x18
jne case.0x10028f38.12
or dword [esi + 0xc], 0x40000
lea eax, [ebp - 0x4c]
push eax
push edi
call fcn.10024150
mov edi, eax
add esp, 8
mov eax, dword [ebp - 0x4c]
or eax, dword [ebp - 0x48]
je 0x10029954
mov al, 1
test edi, edi
mov byte [esi + 0xd9], al
jmp 0x10029be8
xor al, al
test edi, edi
mov byte [esi + 0xd9], al
jmp 0x10029be8
cmp bl, 0x20
jne case.0x10028f38.12
or dword [esi + 0xc], 0x10000
lea eax, [ebp - 0x54]
push eax
push edi
call fcn.10024150
mov ecx, dword [ebp - 0x50]
mov edi, eax
mov eax, dword [ebp - 0x54]
add esp, 8
mov dword [esi + 0xd0], eax
test edi, edi
mov dword [esi + 0xd4], ecx
jmp 0x10029be8
cmp bl, 0x2a
jne case.0x10028f38.12
or dword [esi + 8], 0x80000
lea ecx, [esi + 0x60]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x100299bc
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.two_factor_code
jmp 0x10029bc0
cmp bl, 0x30
jne case.0x10028f38.12
or dword [esi + 0xc], 0x80000
lea eax, [ebp - 0x5c]
push eax
push edi
call fcn.10024150
mov edi, eax
add esp, 8
mov eax, dword [ebp - 0x5c]
or eax, dword [ebp - 0x58]
je 0x10029a1c
mov al, 1
test edi, edi
mov byte [esi + 0xda], al
jmp 0x10029be8
xor al, al
test edi, edi
mov byte [esi + 0xda], al
jmp 0x10029be8
cmp bl, 0x3a
jne case.0x10028f38.12
or dword [esi + 8], 0x100000
lea ecx, [esi + 0x64]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x10029a4c
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.web_logon_nonce
jmp 0x10029bc0
cmp bl, 0x40
jne case.0x10028f38.12
or dword [esi + 0xc], 0x200000
lea eax, [ebp - 8]
push eax
call fcn.10024bb0
mov edi, dword [ebp - 8]
add esp, 4
mov dword [esi + 0xdc], eax
test edi, edi
je 0x10029c47
mov ecx, dword [ebp - 0x1c]
jmp 0x10028eb0
cmp bl, 0x4a
jne case.0x10028f38.12
or dword [esi + 8], 0x1000000
mov eax, dword [esi + 0x74]
test eax, eax
jne 0x10029adc
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x10029ad0
mov eax, dword [eax]
push eax
call fcn.10027590
add esp, 4
mov dword [esi + 0x74], eax
mov ecx, dword [ebp - 0x1c]
push edi
push eax
call fcn.100510c0
mov edi, eax
test edi, edi
je 0x10029c47
mov ecx, dword [ebp - 0x1c]
jmp 0x10028eb0
cmp bl, 0x50
jne case.0x10028f38.12
or dword [esi + 0xc], 0x100000
lea eax, [ebp - 0x64]
push eax
push edi
call fcn.10024150
mov edi, eax
add esp, 8
mov eax, dword [ebp - 0x64]
or eax, dword [ebp - 0x60]
je 0x10029b23
mov al, 1
jmp 0x10029b25
xor al, al
mov byte [esi + 0xdb], al
test edi, edi
je 0x10029c47
mov ecx, dword [ebp - 0x1c]
jmp 0x10028eb0
cmp bl, 0x58
jne case.0x10028f38.12
or dword [esi + 0xc], 0x400000
lea eax, [ebp - 0x6c]
push eax
push edi
call fcn.10024150
mov edi, eax
add esp, 8
mov eax, dword [ebp - 0x6c]
or eax, dword [ebp - 0x68]
je 0x10029b66
mov al, 1
jmp 0x10029b68
xor al, al
mov byte [esi + 0xe0], al
test edi, edi
je 0x10029c47
mov ecx, dword [ebp - 0x1c]
jmp 0x10028eb0
cmp bl, 0x62
jne case.0x10028f38.12
or dword [esi + 8], 0x200000
lea ecx, [esi + 0x68]
mov eax, dword [esi + 4]
and eax, 0xfffffffc
test byte [esi + 4], 1
je 0x10029b9b
mov eax, dword [eax]
push eax
call fcn.1004de60
mov edx, dword [ebp - 0x1c]
mov ebx, eax
push edx
push edi
push ebx
call fcn.10050a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10029c47
push str.tutorial.ClientLogon.access_token
sub esp, 8
mov eax, ebx
cmp dword [ebx + 0x14], 0x10
mov ecx, esp
jb 0x10029bcf
mov eax, dword [ebx]
mov dword [ecx], eax
mov dword [ecx + 4], 0
mov eax, dword [ebx + 0x10]
mov dword [ecx + 4], eax
call fcn.100514f0
add esp, 0xc
test al, al
je 0x10029c47
mov ecx, dword [ebp - 0x1c]
jmp 0x10028eb0
test ebx, ebx
je 0x10029c43
mov eax, ebx
and al, 7
cmp al, 4
je 0x10029c43
test byte [esi + 4], 1
lea ecx, [esi + 4]
je 0x10029c11
mov eax, dword [ecx]
and eax, 0xfffffffc
add eax, 4
jmp 0x10029c16
call fcn.10024200
mov edx, dword [ebp - 0x1c]
push edx
push edi
push eax
push 0
push ebx
call fcn.10052950
mov edi, eax
add esp, 0x14
test edi, edi
je 0x10029c47
mov ecx, dword [ebp - 0x1c]
jmp 0x10028eb0
test eax, eax
jle 0x10029c65
xor eax, eax
cmp dword [ecx + 8], eax
cmove edi, eax
jmp 0x10029c65
test edi, edi
jne 0x10029c5c
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100476aa
mov esp, ebp
pop ebp
ret 8
mov edx, dword [ebp - 0x1c]
lea ecx, [ebx - 1]
mov dword [edx + 0x3c], ecx
mov eax, edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100476aa
mov esp, ebp
pop ebp
ret 8