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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1e4
push ebx
push esi
push edi
mov ebx, ecx
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x30], ebx
call fcn.005d3148
lea eax, [ebp + 8]
push eax
lea ecx, [esp + 0x14]
call fcn.005b0ad8
lea ecx, [esp + 0x19c]
push ecx
lea ecx, [esp + 0x14]
call fcn.005b07e8
mov edx, dword [eax + 4]
mov eax, dword [eax]
push 1
push 0x10083310
push edx
push eax
lea ecx, [esp + 0x164]
call fcn.005b08a8
mov ecx, eax
call fcn.005b09c8
test eax, eax
je 0x588c6c
mov ecx, dword [0x1008e424]
mov edx, dword [0x1008e428]
mov eax, dword [0x1008e42c]
mov dword [esp + 0x80], ecx
mov cx, word [0x1008e430]
mov word [esp + 0x8c], cx
lea ecx, [esp + 0x10]
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], eax
call fcn.005b0968
cmp ax, 6
jb 0x588c6c
push 5
lea ecx, [esp + 0x14]
call fcn.005b0c48
cmp ax, 0x3a
jne 0x588c6c
push 4
lea ecx, [esp + 0x14]
call fcn.005b0c48
mov ecx, dword [ebx + 8]
mov word [esp + 0x88], ax
mov edx, dword [ecx]
mov edx, dword [edx + 0x30]
lea eax, [esp + 0x1c]
push eax
call edx
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x588a5a
mov esi, dword [eax]
mov edi, eax
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x180]
add esi, 0x14
call fcn.005b0888
mov ecx, eax
call fcn.005b0858
mov edx, dword [esi]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, edi
call edx
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x588a4d
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
test eax, eax
je 0x588a4d
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0xe0]
call fcn.005b0aa8
mov ecx, dword [ebp + 0x10]
push eax
call fcn.005b0b58
lea ecx, [esp + 0xdc]
call fcn.005b0b78
lea ecx, [esp + 0x10]
mov edi, 6
call fcn.005b0858
cmp word [eax], 0xc
jne 0x5889e3
push 0x10082364
lea ecx, [esp + 0x190]
call fcn.005b0888
jmp 0x588a20
lea ecx, [esp + 0x10]
call fcn.005b0858
mov esi, dword [eax + 4]
add esi, 0xc
cmp word [esi], 0x5c
jne 0x588a00
add esi, 2
mov edi, 7
lea ecx, [esp + 0x10]
call fcn.005b0858
movzx eax, word [eax]
shr ax, 1
sub ax, di
lea ecx, [esp + 0x1a4]
push eax
push esi
call fcn.005b0868
mov ecx, eax
call fcn.005b0858
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.005b0af8
lea ecx, [esp + 0x20]
call fcn.005b1928
lea ecx, [esp + 0x1c]
call fcn.005b1928
jmp 0x589824
lea ecx, [esp + 0x20]
call fcn.005b1928
mov eax, dword [esp + 0x1c]
cmp dword [0x100c36e4], 0
je 0x588c60
push 4
lea ecx, [esp + 0x14]
call fcn.005b0c48
mov ecx, dword [0x100c371c]
movzx eax, ax
movzx eax, ax
movzx edi, word [ecx + eax*2]
sub edi, 0x41
cmp edi, 0x20
jae 0x588c5c
mov esi, dword [0x100c3678]
push 0
push 0x24
lea edx, [esp + 0x1d4]
push edx
push 0x17
add esi, 0xcbc
call dword [0x10082218]
push eax
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
call eax
test eax, eax
jne 0x588c5c
mov al, byte [esp + edi + 0x1d0]
test al, al
je 0x588ad9
cmp al, 1
je 0x588ad9
cmp al, 4
jne 0x588c5c
lea eax, [esp + 0xe4]
push eax
lea ecx, [esp + 0xb0]
lea esi, [ebx + 0x34]
push ecx
mov ecx, esi
mov dword [esp + 0xb4], edi
call fcn.00585f28
test eax, eax
je 0x588b21
mov ecx, dword [ebp + 0x10]
call fcn.005b0c58
mov ecx, dword [ebp + 0x14]
lea edx, [esp + 0x10]
push edx
call fcn.005b0b58
lea ecx, [esp + 0x1c]
call fcn.005b1928
jmp 0x589824
xor eax, eax
mov dword [esp + 0x6c], 1
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0xa8], edi
mov eax, dword [esp + 0x6c]
push eax
lea ecx, [esp + 0x64]
call fcn.0055e1e8
lea ecx, [esp + 0x30]
push ecx
mov edx, ecx
push edx
mov ecx, esi
call fcn.005858f8
mov ebx, dword [esp + 0x60]
lea eax, [esp + 0x6c]
push eax
push ebx
lea ecx, [esp + 0x90]
push ecx
call dword [0x100c36e4]
lea edx, [esp + 0xa8]
push edx
mov ecx, esi
mov edi, eax
call fcn.005859e8
cmp edi, 0xea
je 0x588b3e
test edi, edi
jne 0x588c53
push 0x1008e414
lea ecx, [esp + 0xd4]
call fcn.0055ecd8
add ebx, 2
push ebx
lea ecx, [esp + 0xd4]
call fcn.0055e048
mov eax, dword [esp + 0xd0]
push eax
lea ecx, [esp + 0x108]
call fcn.005b0888
mov ecx, eax
call fcn.005b0858
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [eax + 4]
mov eax, dword [eax]
push esi
push ecx
mov ecx, dword [esp + 0x34]
push edx
push eax
call fcn.00588858
mov ecx, esi
call fcn.005b0858
cmp word [eax], di
jbe 0x588c19
mov ecx, esi
call fcn.005b0968
sub ax, 1
mov ecx, esi
push eax
call fcn.005b0c48
cmp ax, 0x5c
je 0x588c19
push 0x100832d8
mov ecx, esi
call fcn.005b0bf8
lea ecx, [esp + 0x10]
call fcn.005b0858
mov ecx, dword [eax + 4]
add ecx, 0xe
push ecx
mov ecx, esi
call fcn.005b0bf8
lea ecx, [esp + 0xd0]
call fcn.0055e448
lea ecx, [esp + 0x60]
call fcn.0055e1b8
lea ecx, [esp + 0x1c]
call fcn.005b1928
jmp 0x589824
lea ecx, [esp + 0x60]
call fcn.0055e1b8
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x588c6c
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov ebx, dword [esp + 0x2c]
add ebx, 0x10
push 0xffffffffffffffff
lea ecx, [esp + 0x4f]
mov esi, ebx
push ecx
mov ecx, esi
mov dword [esp + 0x98], ebx
mov dword [esp + 0x78], esi
call fcn.00562bf8
test al, al
je 0x588c98
add dword [esi + 0x10], 1
mov al, 1
mov ecx, ebx
mov byte [esp + 0x74], al
call fcn.00566a18
test eax, eax
mov dword [esp + 0x5c], eax
je 0x588d58
lea edx, [esp + 0x5c]
push edx
mov ecx, ebx
call fcn.00585e98
push eax
lea ecx, [esp + 0x38]
call fcn.005b0ad8
push 1
lea ecx, [esp + 0x14]
call fcn.005b0858
push eax
lea ecx, [esp + 0x3c]
call fcn.005b0858
push eax
call dword [0x100c3918]
test eax, eax
je 0x588e90
lea ecx, [esp + 0x34]
call fcn.005b0858
push eax
lea ecx, [esp + 0x50]
call fcn.005b0ad8
push 0x100832d8
lea ecx, [esp + 0x50]
call fcn.005b0bf8
push 1
lea ecx, [esp + 0x50]
call fcn.005b0858
push eax
lea ecx, [esp + 0x18]
call fcn.005b0858
push eax
lea ecx, [esp + 0x170]
call fcn.005b08c8
mov ecx, eax
call fcn.005b08f8
test eax, eax
jne 0x588ebc
lea ecx, [esp + 0x4c]
call fcn.005b0b78
lea ecx, [esp + 0x34]
call fcn.005b0b78
cmp dword [esp + 0x5c], 0
jne 0x588caf
lea ecx, [esp + 0x70]
call fcn.00564548
push 0x1008e400
lea ecx, [esp + 0xcc]
call fcn.005b0888
push 1
lea ecx, [esp + 0xcc]
call fcn.005b0858
push eax
lea ecx, [esp + 0x18]
call fcn.005b0858
push eax
lea ecx, [esp + 0x1a0]
call fcn.005b08c8
mov ecx, eax
call fcn.005b08f8
test eax, eax
je 0x588df9
lea ecx, [esp + 0xc8]
call fcn.005b0968
movzx edi, ax
lea ecx, [esp + 0x10]
add edi, edi
call fcn.005b0858
mov esi, dword [eax + 4]
lea ecx, [esp + 0x10]
add esi, edi
call fcn.005b0968
movzx edi, ax
lea ecx, [esp + 0x10]
add edi, edi
call fcn.005b0858
mov eax, dword [eax + 4]
add eax, edi
cmp esi, eax
je 0x588df9
lea esp, [esp]
cmp word [esi], 0x5c
je 0x588f35
add esi, 2
cmp esi, eax
jne 0x588de8
lea ecx, [esp + 0x10]
call fcn.005b0858
mov edi, dword [eax + 4]
xor esi, esi
nop
cmp word [edi], 0x5c
je 0x588e23
lea ecx, [esp + 0x10]
call fcn.005b0858
movzx edx, word [eax]
movzx ecx, si
add ecx, ecx
cmp ecx, edx
jne 0x588e6c
lea ecx, [esp + 0x78]
call fcn.005b0a58
lea eax, [esp + 0x78]
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.005b0858
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x180]
call fcn.005b0868
mov ecx, eax
call fcn.005b0858
push eax
call fcn.0059f348
add esp, 8
test eax, eax
lea ecx, [esp + 0x78]
je 0x588fdc
call fcn.005b0b78
lea ecx, [esp + 0x10]
call fcn.005b0858
movzx eax, word [eax]
movzx edx, si
add edx, edx
cmp edx, eax
je 0x589048
add esi, 1
add edi, 2
jmp 0x588e08
mov ecx, dword [ebp + 0x10]
lea eax, [esp + 0x34]
push eax
call fcn.005b0b58
mov ecx, dword [ebp + 0x14]
call fcn.005b0c58
lea ecx, [esp + 0x34]
call fcn.005b0b78
lea ecx, [esp + 0x70]
call fcn.00564548
jmp 0x589824
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.005b0b58
lea ecx, [esp + 0x10]
call fcn.005b0858
mov dx, word [eax]
shr dx, 1
lea ecx, [esp + 0x4c]
movzx esi, dx
call fcn.005b0968
movzx edi, ax
lea ecx, [esp + 0x4c]
add edi, edi
call fcn.005b0968
sub si, ax
lea ecx, [esp + 0x10]
push esi
call fcn.005b0858
mov eax, dword [eax + 4]
add eax, edi
push eax
lea ecx, [esp + 0x11c]
call fcn.005b0868
mov ecx, eax
call fcn.005b0858
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.005b0af8
lea ecx, [esp + 0x4c]
call fcn.005b0b78
jmp 0x588ea5
add esi, 2
cmp esi, eax
je 0x588df9
jmp 0x588f48
movzx ecx, word [esi]
cmp cx, 0x5c
je 0x588df9
cmp cx, 0x3a
je 0x588f67
add esi, 2
cmp esi, eax
jne 0x588f48
jmp 0x588df9
cmp esi, eax
je 0x588df9
cmp word [esi], 0x5c
je 0x588f81
add esi, 2
cmp esi, eax
jne 0x588f6f
jmp 0x588df9
push 0x1008e414
lea ecx, [esp + 0xb4]
call fcn.005b0aa8
push esi
lea ecx, [esp + 0xb4]
call fcn.005b0bf8
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0xb4]
call fcn.005b07e8
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
mov ecx, dword [esp + 0x38]
push edx
call fcn.00588858
lea ecx, [esp + 0xb0]
call fcn.005b0b78
jmp 0x589824
push ecx
lea ecx, [esp + 0xa4]
call fcn.005b0ad8
lea ecx, [esp + 0x10]
call fcn.005b0858
movzx edx, word [eax]
shr dx, 1
sub dx, si
lea ecx, [esp + 0x134]
push edx
push edi
call fcn.005b0868
mov ecx, eax
call fcn.005b0858
push eax
lea ecx, [esp + 0xa4]
call fcn.005b0b88
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x14]
call fcn.005b0b58
lea ecx, [esp + 0xa0]
call fcn.005b0b78
lea ecx, [esp + 0x78]
call fcn.005b0b78
jmp 0x588df9
mov ecx, ebx
call fcn.0055d008
call dword [0x10082064]
mov ecx, dword [ebx + 8]
mov esi, eax
cmp esi, ecx
lea eax, [ebx + 8]
je 0x589088
mov edx, dword [eax]
test edx, edx
jne 0x5893e1
push edx
push esi
push eax
call dword [0x10082220]
test eax, eax
sete al
test al, al
je 0x5893e1
mov dword [ebx + 0x10], 0
add dword [ebx + 0x10], 1
mov byte [esp + 0x1b], 1
mov ecx, ebx
call fcn.0055d008
call dword [0x10082064]
mov esi, eax
mov eax, dword [ebx + 8]
cmp esi, eax
lea edi, [ebx + 8]
je 0x5890d1
mov ecx, dword [edi]
test ecx, ecx
jne 0x5893fc
push ecx
push esi
push edi
call dword [0x10082220]
test eax, eax
sete al
test al, al
je 0x5893fc
mov dword [ebx + 0x10], 0
add dword [ebx + 0x10], 1
mov byte [esp + 0x27], 1
mov ecx, ebx
call fcn.0055d008
call dword [0x10082064]
mov edx, dword [edi]
mov esi, eax
cmp esi, edx
je 0x589116
mov eax, dword [edi]
test eax, eax
jne 0x589417
push eax
push esi
push edi
call dword [0x10082220]
test eax, eax
sete al
test al, al
je 0x589417
mov dword [ebx + 0x10], 0
add dword [ebx + 0x10], 1
mov al, 1
test al, al
mov ecx, dword [ebx + 0x18]
mov esi, dword [0x100820c0]
mov dword [esp + 0x9c], ecx
je 0x589161
add dword [ebx + 0x10], 0xffffffff
jne 0x589161
push 0
push edi
mov dword [ebx + 0x10], 0
call dword [0x100820c4]
mov edx, dword [ebx + 0xc]
test edx, edx
lea eax, [ebx + 0xc]
jle 0x589161
push eax
call dword [0x10082078]
mov eax, dword [ebx + 0x14]
push 0
push 1
push eax
call esi
cmp byte [esp + 0x27], 0
je 0x589199
add dword [ebx + 0x10], 0xffffffff
jne 0x589199
push 0
push edi
mov dword [ebx + 0x10], 0
call dword [0x100820c4]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
lea eax, [ebx + 0xc]
jle 0x589199
push eax
call dword [0x10082078]
mov edx, dword [ebx + 0x14]
push 0
push 1
push edx
call esi
mov eax, dword [esp + 0x9c]
test eax, eax
mov dword [esp + 0x68], eax
je 0x58926b
lea eax, [esp + 0x68]
push eax
mov ecx, ebx
call fcn.00585e98
push eax
lea ecx, [esp + 0x40]
call fcn.005b0ad8
push 1
lea ecx, [esp + 0x14]
call fcn.005b0858
push eax
lea ecx, [esp + 0x44]
call fcn.005b0858
push eax
call dword [0x100c3918]
test eax, eax
lea ecx, [esp + 0x3c]
je 0x58942e
call fcn.005b0858
push eax
lea ecx, [esp + 0x58]
call fcn.005b0ad8
push 0x100832d8
lea ecx, [esp + 0x58]
call fcn.005b0bf8
lea ecx, [esp + 0x1c4]
push ecx
lea ecx, [esp + 0x14]
call fcn.005b07e8
push 1
lea ecx, [esp + 0x58]
mov esi, eax
call fcn.005b0858
mov edx, dword [esi + 4]
push eax
mov eax, dword [esi]
push edx
push eax
lea ecx, [esp + 0x154]
call fcn.005b08a8
mov ecx, eax
call fcn.005b08f8
test eax, eax
jne 0x589498
lea ecx, [esp + 0x54]
call fcn.005b0b78
lea ecx, [esp + 0x3c]
call fcn.005b0b78
cmp dword [esp + 0x68], 0
jne 0x5891ac
mov esi, dword [0x100820c0]
cmp byte [esp + 0x1b], 0
je 0x5892a6
add dword [ebx + 0x10], 0xffffffff
jne 0x5892a6
push 0
lea eax, [ebx + 8]
push eax
mov dword [ebx + 0x10], 0
call dword [0x100820c4]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
lea eax, [ebx + 0xc]
jle 0x5892a6
push eax
call dword [0x10082078]
mov edx, dword [ebx + 0x14]
push 0
push 1
push edx
call esi
push 0
push 0x40
lea ecx, [esp + 0x18]
call fcn.005b0858
push eax
push 0
lea ecx, [esp + 0x1bc]
call fcn.005b0828
lea ecx, [esp + 0x10]
call fcn.005b0858
mov ax, word [eax]
shr ax, 1
movzx edi, ax
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], edi
movzx ebx, di
call fcn.005b0858
mov edx, dword [eax + 4]
movzx ecx, di
lea esi, [edx + ecx*2]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], 0
cmp word [esi], 0x5c
je 0x589308
cmp bx, di
jne 0x5895e0
lea ecx, [esp + 0x10]
call fcn.005b0858
lea ecx, [ebx + ebx]
mov word [eax], cx
mov esi, dword [0x100c3678]
push 0x21
push 3
lea ecx, [esp + 0xf4]
mov dword [esp + 0x4c], 0
add esi, 0x164
call fcn.005b0808
mov ecx, eax
call fcn.005b0858
push eax
lea ecx, [esp + 0x1b8]
call fcn.005b0858
push eax
mov eax, dword [esi]
push 0x100000
lea edx, [esp + 0x58]
push edx
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
call eax
test eax, eax
jne 0x5895cf
mov edi, 0x400
lea ebx, [ebx]
xor esi, esi
test edi, edi
jbe 0x589389
push edi
call fcn.00577dd8
add esp, 4
mov esi, eax
mov ecx, dword [0x100c3678]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0xe8]
push eax
mov eax, dword [ecx + 0xb0c]
push edi
push esi
add ecx, 0xb0c
push 1
push edx
mov edx, dword [eax + 0x24]
call edx
call eax
cmp eax, 0xc0000004
je 0x5893cc
cmp eax, 0x80000005
je 0x5893cc
cmp eax, 0xc0000023
jne 0x589565
add edi, 0x100
test esi, esi
je 0x589378
push esi
call fcn.00577f28
add esp, 4
jmp 0x589378
push 0xffffffffffffffff
push esi
mov ecx, ebx
call fcn.0055efd8
test al, al
jne 0x589088
mov byte [esp + 0x1b], al
jmp 0x589091
push 0xffffffffffffffff
push esi
mov ecx, ebx
call fcn.0055efd8
test al, al
jne 0x5890d1
mov byte [esp + 0x27], al
jmp 0x5890da
push 0xffffffffffffffff
push esi
mov ecx, ebx
call fcn.0055efd8
test al, al
jne 0x589116
jmp 0x58911c
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.005b0b58
mov ecx, dword [ebp + 0x14]
call fcn.005b0c58
lea ecx, [esp + 0x3c]
call fcn.005b0b78
cmp byte [esp + 0x1b], 0
je 0x589824
add dword [ebx + 0x10], 0xffffffff
jne 0x589824
push 0
lea eax, [ebx + 8]
push eax
mov dword [ebx + 0x10], 0
call dword [0x100820c4]
mov edx, dword [ebx + 0xc]
test edx, edx
lea eax, [ebx + 0xc]
jle 0x589824
push eax
call dword [0x10082078]
mov eax, dword [ebx + 0x14]
push 0
push 1
push eax
call dword [0x100820c0]
jmp 0x589824
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.005b0b58
lea ecx, [esp + 0x10]
call fcn.005b0858
mov dx, word [eax]
shr dx, 1
lea ecx, [esp + 0x54]
movzx esi, dx
call fcn.005b0968
movzx edi, ax
lea ecx, [esp + 0x54]
add edi, edi
call fcn.005b0968
sub si, ax
lea ecx, [esp + 0x10]
push esi
call fcn.005b0858
mov eax, dword [eax + 4]
add eax, edi
push eax
lea ecx, [esp + 0x18c]
call fcn.005b0868
mov ecx, eax
call fcn.005b0858
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.005b0af8
lea ecx, [esp + 0x54]
call fcn.005b0b78
lea ecx, [esp + 0x3c]
call fcn.005b0b78
cmp byte [esp + 0x1b], 0
je 0x589824
add dword [ebx + 0x10], 0xffffffff
jne 0x589824
push 0
lea eax, [ebx + 8]
push eax
mov dword [ebx + 0x10], 0
call dword [0x100820c4]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
lea eax, [ebx + 0xc]
jle 0x589824
push eax
call dword [0x10082078]
mov edx, dword [ebx + 0x14]
push 0
push 1
push edx
call dword [0x100820c0]
jmp 0x589824
test eax, eax
jne 0x5895c2
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.005b0af8
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
sub edx, ebx
push edx
push eax
lea ecx, [esp + 0xfc]
call fcn.005b0868
mov ecx, eax
call fcn.005b0858
push eax
lea ecx, [esp + 0x14]
call fcn.005b0b88
lea ecx, [esp + 0x10]
call fcn.005b0858
mov cx, word [eax]
shr cx, 1
movzx edx, cx
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], 1
jmp 0x5895c6
test esi, esi
je 0x5895cf
push esi
call fcn.00577f28
add esp, 4
lea ecx, [esp + 0x44]
call fcn.0057f4d8
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x10]
call fcn.005b0858
cmp dword [eax + 4], esi
je 0x589608
sub esi, 2
add ebx, 0xffff
cmp dword [esp + 0x30], 0
mov dword [esp + 0x1c], esi
je 0x5892f9
jmp 0x58961e
cmp dword [esp + 0x30], 0
jne 0x58961e
lea ecx, [esp + 0x10]
call fcn.005b0858
lea ecx, [edi + edi]
mov word [eax], cx
lea ecx, [esp + 0x10]
call fcn.005b0858
mov edx, dword [eax + 4]
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], edx
xor edi, edi
call fcn.005b0858
mov ax, word [eax]
shr ax, 1
movzx ecx, ax
mov dword [esp + 0x20], ecx
mov edi, edi
mov edx, dword [esp + 0x1c]
cmp word [edx], 0x5c
je 0x58965d
cmp di, word [esp + 0x20]
jne 0x589763
lea ecx, [esp + 0x10]
call fcn.005b0858
mov edx, dword [esp + 0x1c]
lea ecx, [edi + edi]
mov word [eax], cx
xor ebx, ebx
cmp word [edx], 0x5c
jne 0x58968a
lea ecx, [esp + 0x10]
call fcn.005b0858
add word [eax], 2
mov ebx, 1
mov esi, dword [0x100c3678]
push 0x21
push 3
lea ecx, [esp + 0x104]
mov dword [esp + 0x34], 0
add esi, 0x164
call fcn.005b0808
mov ecx, eax
call fcn.005b0858
push eax
lea ecx, [esp + 0x1b8]
call fcn.005b0858
mov edx, dword [esi]
push eax
push 0x100001
lea eax, [esp + 0x40]
push eax
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
call eax
test eax, eax
jne 0x58974f
push 0x400
call fcn.00577dd8
mov esi, dword [0x100c3678]
add esp, 4
push 1
push 0
push 0
push 3
push 0x400
push eax
lea ecx, [esp + 0x124]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], 0x400
add esi, 0x524
call fcn.005b0808
mov ecx, eax
call fcn.005b0858
mov ecx, dword [esp + 0x44]
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x24]
push 0
push 0
push 0
push ecx
mov ecx, esi
call eax
call eax
test eax, eax
je 0x589770
lea ecx, [esp + 0x94]
call fcn.0055e1b8
lea ecx, [esp + 0x2c]
call fcn.0057f4d8
cmp di, word [esp + 0x20]
je 0x58983f
add edi, 1
add dword [esp + 0x1c], 2
jmp 0x589648
mov esi, dword [ebp + 0x10]
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
call fcn.005b0b58
test ebx, ebx
je 0x58978f
mov ecx, esi
call fcn.005b0858
add word [eax], 0xfffe
mov eax, dword [esp + 0x20]
cmp ax, di
jne 0x5897b9
push 0x10082364
lea ecx, [esp + 0x120]
call fcn.005b0888
mov ecx, eax
call fcn.005b0858
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edx
push eax
jmp 0x5897ed
sub eax, edi
sub eax, 1
push eax
lea ecx, [esp + 0x14]
call fcn.005b0858
mov edx, dword [eax + 4]
movzx ecx, di
lea eax, [edx + ecx*2 + 2]
push eax
lea ecx, [esp + 0x134]
call fcn.005b0868
mov ecx, eax
call fcn.005b0858
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
mov ecx, dword [ebp + 0x14]
call fcn.005b0af8
lea ecx, [esp + 0x94]
call fcn.0055e1b8
lea ecx, [esp + 0x2c]
call fcn.0057f4d8
mov edx, dword [ebp + 0x10]
sub esp, 8
mov ecx, esp
push edx
call fcn.005b0ad8
mov ecx, dword [esp + 0x98]
call fcn.00588728
lea ecx, [esp + 0x10]
call fcn.005b0b78
lea ecx, [esp + 0x28]
call fcn.005d3168
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [esp + 0x10]
call fcn.005b0858
mov ecx, dword [esp + 0x20]
lea edx, [ecx + ecx]
push 1
push 0x10083310
lea ecx, [esp + 0x18]
mov word [eax], dx
call fcn.005b0858
push eax
lea ecx, [esp + 0x148]
call fcn.005b08c8
mov ecx, eax
call fcn.005b09c8
test eax, eax
je 0x5899a5
mov eax, dword [0x1008e424]
mov ecx, dword [0x1008e428]
mov edx, dword [0x1008e42c]
mov dword [esp + 0xb8], eax
mov ax, word [0x1008e430]
mov dword [esp + 0xbc], ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xc0], edx
mov word [esp + 0xc4], ax
call fcn.005b0858
mov cx, word [eax]
and cx, 0xfffe
cmp cx, 0xc
jb 0x5899a5
lea ecx, [esp + 0x10]
call fcn.005b0858
mov edx, dword [eax + 4]
cmp word [edx + 0xa], 0x3a
jne 0x5899a5
lea ecx, [esp + 0x10]
call fcn.005b0858
mov eax, dword [eax + 4]
mov cx, word [eax + 8]
lea edx, [esp + 0xb8]
mov word [esp + 0xc0], cx
push edx
lea ecx, [esp + 0x150]
call fcn.005b0888
mov ecx, eax
call fcn.005b0858
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x10]
push edx
call fcn.005b0af8
lea ecx, [esp + 0x10]
mov edi, 6
call fcn.005b0858
cmp word [eax], 0xc
jne 0x58994d
push 0x10082364
lea ecx, [esp + 0x160]
call fcn.005b0888
jmp 0x58998a
lea ecx, [esp + 0x10]
call fcn.005b0858
mov esi, dword [eax + 4]
add esi, 0xc
cmp word [esi], 0x5c
jne 0x58996a
add esi, 2
mov edi, 7
lea ecx, [esp + 0x10]
call fcn.005b0858
movzx eax, word [eax]
shr ax, 1
sub ax, di
lea ecx, [esp + 0x16c]
push eax
push esi
call fcn.005b0868
mov ecx, eax
call fcn.005b0858
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.005b0af8
jmp 0x58980a
mov ecx, dword [ebp + 0x10]
call fcn.005b0c58
mov ecx, dword [ebp + 0x14]
lea eax, [esp + 0x10]
push eax
call fcn.005b0b58
jmp 0x589824