Function at 0x5c3c60
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.005ee570
lea eax, [ebp + 8]
push eax
lea ecx, [esp + 0x14]
call fcn.005d8230
lea ecx, [esp + 0x19c]
push ecx
lea ecx, [esp + 0x14]
call fcn.005d82e0
mov edx, dword [eax + 4]
mov eax, dword [eax]
push 1
push 0x10083b08
push edx
push eax
lea ecx, [esp + 0x164]
call fcn.005bd3e0
mov ecx, eax
call fcn.005bd4f0
test eax, eax
je 0x5c4074
mov ecx, dword [0x100919d4]
mov edx, dword [0x100919d8]
mov eax, dword [0x100919dc]
mov dword [esp + 0x80], ecx
mov cx, word [0x100919e0]
mov word [esp + 0x8c], cx
lea ecx, [esp + 0x10]
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], eax
call fcn.005d83a0
cmp ax, 6
jb 0x5c4074
push 5
lea ecx, [esp + 0x14]
call fcn.005d83b0
cmp ax, 0x3a
jne 0x5c4074
push 4
lea ecx, [esp + 0x14]
call fcn.005d83b0
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 0x5c3e62
mov esi, dword [eax]
mov edi, eax
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x180]
add esi, 0x14
call fcn.005bd3c0
mov ecx, eax
call fcn.005d8300
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 0x5c3e55
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
test eax, eax
je 0x5c3e55
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0xe0]
call fcn.005d8200
mov ecx, dword [ebp + 0x10]
push eax
call fcn.005d82b0
lea ecx, [esp + 0xdc]
call fcn.005d82d0
lea ecx, [esp + 0x10]
mov edi, 6
call fcn.005d8300
cmp word [eax], 0xc
jne 0x5c3deb
push 0x1008341c
lea ecx, [esp + 0x190]
call fcn.005bd3c0
jmp 0x5c3e28
lea ecx, [esp + 0x10]
call fcn.005d8300
mov esi, dword [eax + 4]
add esi, 0xc
cmp word [esi], 0x5c
jne 0x5c3e08
add esi, 2
mov edi, 7
lea ecx, [esp + 0x10]
call fcn.005d8300
movzx eax, word [eax]
shr ax, 1
sub ax, di
lea ecx, [esp + 0x1a4]
push eax
push esi
call fcn.005bd3a0
mov ecx, eax
call fcn.005d8300
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.005d8250
lea ecx, [esp + 0x20]
call fcn.005a6e90
lea ecx, [esp + 0x1c]
call fcn.005a6e90
jmp 0x5c4c2c
lea ecx, [esp + 0x20]
call fcn.005a6e90
mov eax, dword [esp + 0x1c]
cmp dword [0x10143d2c], 0
je 0x5c4068
push 4
lea ecx, [esp + 0x14]
call fcn.005d83b0
mov ecx, dword [0x10143d64]
movzx eax, ax
movzx eax, ax
movzx edi, word [ecx + eax*2]
sub edi, 0x41
cmp edi, 0x20
jae 0x5c4064
mov esi, dword [0x10143fa4]
push 0
push 0x24
lea edx, [esp + 0x1d4]
push edx
push 0x17
add esi, 0xc2c
call dword [0x10083210]
push eax
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
call eax
test eax, eax
jne 0x5c4064
mov al, byte [esp + edi + 0x1d0]
test al, al
je 0x5c3ee1
cmp al, 1
je 0x5c3ee1
cmp al, 4
jne 0x5c4064
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.005c0e70
test eax, eax
je 0x5c3f29
mov ecx, dword [ebp + 0x10]
call fcn.005d83c0
mov ecx, dword [ebp + 0x14]
lea edx, [esp + 0x10]
push edx
call fcn.005d82b0
lea ecx, [esp + 0x1c]
call fcn.005a6e90
jmp 0x5c4c2c
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.00576b60
lea ecx, [esp + 0x30]
push ecx
mov edx, ecx
push edx
mov ecx, esi
call fcn.005c0d80
mov ebx, dword [esp + 0x60]
lea eax, [esp + 0x6c]
push eax
push ebx
lea ecx, [esp + 0x90]
push ecx
call dword [0x10143d2c]
lea edx, [esp + 0xa8]
push edx
mov ecx, esi
mov edi, eax
call fcn.005c0f70
cmp edi, 0xea
je 0x5c3f46
test edi, edi
jne 0x5c405b
push 0x100919c4
lea ecx, [esp + 0xd4]
call fcn.00574310
add ebx, 2
push ebx
lea ecx, [esp + 0xd4]
call fcn.00579830
mov eax, dword [esp + 0xd0]
push eax
lea ecx, [esp + 0x108]
call fcn.005bd3c0
mov ecx, eax
call fcn.005d8300
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.005c3c60
mov ecx, esi
call fcn.005d8300
cmp word [eax], di
jbe 0x5c4021
mov ecx, esi
call fcn.005d83a0
sub ax, 1
mov ecx, esi
push eax
call fcn.005d83b0
cmp ax, 0x5c
je 0x5c4021
push 0x10084960
mov ecx, esi
call fcn.005d84e0
lea ecx, [esp + 0x10]
call fcn.005d8300
mov ecx, dword [eax + 4]
add ecx, 0xe
push ecx
mov ecx, esi
call fcn.005d84e0
lea ecx, [esp + 0xd0]
call fcn.00573b10
lea ecx, [esp + 0x60]
call fcn.005739a0
lea ecx, [esp + 0x1c]
call fcn.005a6e90
jmp 0x5c4c2c
lea ecx, [esp + 0x60]
call fcn.005739a0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x5c4074
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.0057da00
test al, al
je 0x5c40a0
add dword [esi + 0x10], 1
mov al, 1
mov ecx, ebx
mov byte [esp + 0x74], al
call fcn.00581810
test eax, eax
mov dword [esp + 0x5c], eax
je 0x5c4160
lea edx, [esp + 0x5c]
push edx
mov ecx, ebx
call fcn.005c1420
push eax
lea ecx, [esp + 0x38]
call fcn.005d8230
push 1
lea ecx, [esp + 0x14]
call fcn.005d8300
push eax
lea ecx, [esp + 0x3c]
call fcn.005d8300
push eax
call dword [0x10143f60]
test eax, eax
je 0x5c4298
lea ecx, [esp + 0x34]
call fcn.005d8300
push eax
lea ecx, [esp + 0x50]
call fcn.005d8230
push 0x10084960
lea ecx, [esp + 0x50]
call fcn.005d84e0
push 1
lea ecx, [esp + 0x50]
call fcn.005d8300
push eax
lea ecx, [esp + 0x18]
call fcn.005d8300
push eax
lea ecx, [esp + 0x170]
call fcn.005bd400
mov ecx, eax
call fcn.005bd430
test eax, eax
jne 0x5c42c4
lea ecx, [esp + 0x4c]
call fcn.005d82d0
lea ecx, [esp + 0x34]
call fcn.005d82d0
cmp dword [esp + 0x5c], 0
jne 0x5c40b7
lea ecx, [esp + 0x70]
call fcn.005bfb60
push 0x100919b0
lea ecx, [esp + 0xcc]
call fcn.005bd3c0
push 1
lea ecx, [esp + 0xcc]
call fcn.005d8300
push eax
lea ecx, [esp + 0x18]
call fcn.005d8300
push eax
lea ecx, [esp + 0x1a0]
call fcn.005bd400
mov ecx, eax
call fcn.005bd430
test eax, eax
je 0x5c4201
lea ecx, [esp + 0xc8]
call fcn.005d83a0
movzx edi, ax
lea ecx, [esp + 0x10]
add edi, edi
call fcn.005d8300
mov esi, dword [eax + 4]
lea ecx, [esp + 0x10]
add esi, edi
call fcn.005d83a0
movzx edi, ax
lea ecx, [esp + 0x10]
add edi, edi
call fcn.005d8300
mov eax, dword [eax + 4]
add eax, edi
cmp esi, eax
je 0x5c4201
lea esp, [esp]
cmp word [esi], 0x5c
je 0x5c433d
add esi, 2
cmp esi, eax
jne 0x5c41f0
lea ecx, [esp + 0x10]
call fcn.005d8300
mov edi, dword [eax + 4]
xor esi, esi
nop
cmp word [edi], 0x5c
je 0x5c422b
lea ecx, [esp + 0x10]
call fcn.005d8300
movzx edx, word [eax]
movzx ecx, si
add ecx, ecx
cmp ecx, edx
jne 0x5c4274
lea ecx, [esp + 0x78]
call fcn.005d81b0
lea eax, [esp + 0x78]
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.005d8300
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x180]
call fcn.005bd3a0
mov ecx, eax
call fcn.005d8300
push eax
call fcn.005d70f0
add esp, 8
test eax, eax
lea ecx, [esp + 0x78]
je 0x5c43e4
call fcn.005d82d0
lea ecx, [esp + 0x10]
call fcn.005d8300
movzx eax, word [eax]
movzx edx, si
add edx, edx
cmp edx, eax
je 0x5c4450
add esi, 1
add edi, 2
jmp 0x5c4210
mov ecx, dword [ebp + 0x10]
lea eax, [esp + 0x34]
push eax
call fcn.005d82b0
mov ecx, dword [ebp + 0x14]
call fcn.005d83c0
lea ecx, [esp + 0x34]
call fcn.005d82d0
lea ecx, [esp + 0x70]
call fcn.005bfb60
jmp 0x5c4c2c
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.005d82b0
lea ecx, [esp + 0x10]
call fcn.005d8300
mov dx, word [eax]
shr dx, 1
lea ecx, [esp + 0x4c]
movzx esi, dx
call fcn.005d83a0
movzx edi, ax
lea ecx, [esp + 0x4c]
add edi, edi
call fcn.005d83a0
sub si, ax
lea ecx, [esp + 0x10]
push esi
call fcn.005d8300
mov eax, dword [eax + 4]
add eax, edi
push eax
lea ecx, [esp + 0x11c]
call fcn.005bd3a0
mov ecx, eax
call fcn.005d8300
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.005d8250
lea ecx, [esp + 0x4c]
call fcn.005d82d0
jmp 0x5c42ad
add esi, 2
cmp esi, eax
je 0x5c4201
jmp 0x5c4350
movzx ecx, word [esi]
cmp cx, 0x5c
je 0x5c4201
cmp cx, 0x3a
je 0x5c436f
add esi, 2
cmp esi, eax
jne 0x5c4350
jmp 0x5c4201
cmp esi, eax
je 0x5c4201
cmp word [esi], 0x5c
je 0x5c4389
add esi, 2
cmp esi, eax
jne 0x5c4377
jmp 0x5c4201
push 0x100919c4
lea ecx, [esp + 0xb4]
call fcn.005d8200
push esi
lea ecx, [esp + 0xb4]
call fcn.005d84e0
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0xb4]
call fcn.005d82e0
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.005c3c60
lea ecx, [esp + 0xb0]
call fcn.005d82d0
jmp 0x5c4c2c
push ecx
lea ecx, [esp + 0xa4]
call fcn.005d8230
lea ecx, [esp + 0x10]
call fcn.005d8300
movzx edx, word [eax]
shr dx, 1
sub dx, si
lea ecx, [esp + 0x134]
push edx
push edi
call fcn.005bd3a0
mov ecx, eax
call fcn.005d8300
push eax
lea ecx, [esp + 0xa4]
call fcn.005d8310
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x14]
call fcn.005d82b0
lea ecx, [esp + 0xa0]
call fcn.005d82d0
lea ecx, [esp + 0x78]
call fcn.005d82d0
jmp 0x5c4201
mov ecx, ebx
call fcn.005e93c0
call dword [0x100830b0]
mov ecx, dword [ebx + 8]
mov esi, eax
cmp esi, ecx
lea eax, [ebx + 8]
je 0x5c4490
mov edx, dword [eax]
test edx, edx
jne 0x5c47e9
push edx
push esi
push eax
call dword [0x1008308c]
test eax, eax
sete al
test al, al
je 0x5c47e9
mov dword [ebx + 0x10], 0
add dword [ebx + 0x10], 1
mov byte [esp + 0x1b], 1
mov ecx, ebx
call fcn.005e93c0
call dword [0x100830b0]
mov esi, eax
mov eax, dword [ebx + 8]
cmp esi, eax
lea edi, [ebx + 8]
je 0x5c44d9
mov ecx, dword [edi]
test ecx, ecx
jne 0x5c4804
push ecx
push esi
push edi
call dword [0x1008308c]
test eax, eax
sete al
test al, al
je 0x5c4804
mov dword [ebx + 0x10], 0
add dword [ebx + 0x10], 1
mov byte [esp + 0x27], 1
mov ecx, ebx
call fcn.005e93c0
call dword [0x100830b0]
mov edx, dword [edi]
mov esi, eax
cmp esi, edx
je 0x5c451e
mov eax, dword [edi]
test eax, eax
jne 0x5c481f
push eax
push esi
push edi
call dword [0x1008308c]
test eax, eax
sete al
test al, al
je 0x5c481f
mov dword [ebx + 0x10], 0
add dword [ebx + 0x10], 1
mov al, 1
test al, al
mov ecx, dword [ebx + 0x18]
mov esi, dword [0x100830c0]
mov dword [esp + 0x9c], ecx
je 0x5c4569
add dword [ebx + 0x10], 0xffffffff
jne 0x5c4569
push 0
push edi
mov dword [ebx + 0x10], 0
call dword [0x100830c4]
mov edx, dword [ebx + 0xc]
test edx, edx
lea eax, [ebx + 0xc]
jle 0x5c4569
push eax
call dword [0x100830a4]
mov eax, dword [ebx + 0x14]
push 0
push 1
push eax
call esi
cmp byte [esp + 0x27], 0
je 0x5c45a1
add dword [ebx + 0x10], 0xffffffff
jne 0x5c45a1
push 0
push edi
mov dword [ebx + 0x10], 0
call dword [0x100830c4]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
lea eax, [ebx + 0xc]
jle 0x5c45a1
push eax
call dword [0x100830a4]
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 0x5c4673
lea eax, [esp + 0x68]
push eax
mov ecx, ebx
call fcn.005c1420
push eax
lea ecx, [esp + 0x40]
call fcn.005d8230
push 1
lea ecx, [esp + 0x14]
call fcn.005d8300
push eax
lea ecx, [esp + 0x44]
call fcn.005d8300
push eax
call dword [0x10143f60]
test eax, eax
lea ecx, [esp + 0x3c]
je 0x5c4836
call fcn.005d8300
push eax
lea ecx, [esp + 0x58]
call fcn.005d8230
push 0x10084960
lea ecx, [esp + 0x58]
call fcn.005d84e0
lea ecx, [esp + 0x1c4]
push ecx
lea ecx, [esp + 0x14]
call fcn.005d82e0
push 1
lea ecx, [esp + 0x58]
mov esi, eax
call fcn.005d8300
mov edx, dword [esi + 4]
push eax
mov eax, dword [esi]
push edx
push eax
lea ecx, [esp + 0x154]
call fcn.005bd3e0
mov ecx, eax
call fcn.005bd430
test eax, eax
jne 0x5c48a0
lea ecx, [esp + 0x54]
call fcn.005d82d0
lea ecx, [esp + 0x3c]
call fcn.005d82d0
cmp dword [esp + 0x68], 0
jne 0x5c45b4
mov esi, dword [0x100830c0]
cmp byte [esp + 0x1b], 0
je 0x5c46ae
add dword [ebx + 0x10], 0xffffffff
jne 0x5c46ae
push 0
lea eax, [ebx + 8]
push eax
mov dword [ebx + 0x10], 0
call dword [0x100830c4]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
lea eax, [ebx + 0xc]
jle 0x5c46ae
push eax
call dword [0x100830a4]
mov edx, dword [ebx + 0x14]
push 0
push 1
push edx
call esi
push 0
push pe_nt_image_headers32
lea ecx, [esp + 0x18]
call fcn.005d8300
push eax
push 0
lea ecx, [esp + 0x1bc]
call fcn.005bd370
lea ecx, [esp + 0x10]
call fcn.005d8300
mov ax, word [eax]
shr ax, 1
movzx edi, ax
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], edi
movzx ebx, di
call fcn.005d8300
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 0x5c4710
cmp bx, di
jne 0x5c49e8
lea ecx, [esp + 0x10]
call fcn.005d8300
lea ecx, [ebx + ebx]
mov word [eax], cx
mov esi, dword [0x10143fa4]
push 0x21
push 3
lea ecx, [esp + 0xf4]
mov dword [esp + 0x4c], 0
add esi, 0x134
call fcn.005edbd0
mov ecx, eax
call fcn.005d8300
push eax
lea ecx, [esp + 0x1b8]
call fcn.005d8300
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 0x5c49d7
mov edi, 0x400
lea ebx, [ebx]
xor esi, esi
test edi, edi
jbe 0x5c4791
push edi
call fcn.00575310
add esp, 4
mov esi, eax
mov ecx, dword [0x10143fa4]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0xe8]
push eax
mov eax, dword [ecx + 0xadc]
push edi
push esi
add ecx, 0xadc
push 1
push edx
mov edx, dword [eax + 0x24]
call edx
call eax
cmp eax, 0xc0000004
je 0x5c47d4
cmp eax, 0x80000005
je 0x5c47d4
cmp eax, 0xc0000023
jne 0x5c496d
add edi, 0x100
test esi, esi
je 0x5c4780
push esi
call fcn.00575460
add esp, 4
jmp 0x5c4780
push 0xffffffffffffffff
push esi
mov ecx, ebx
call fcn.0057a420
test al, al
jne 0x5c4490
mov byte [esp + 0x1b], al
jmp 0x5c4499
push 0xffffffffffffffff
push esi
mov ecx, ebx
call fcn.0057a420
test al, al
jne 0x5c44d9
mov byte [esp + 0x27], al
jmp 0x5c44e2
push 0xffffffffffffffff
push esi
mov ecx, ebx
call fcn.0057a420
test al, al
jne 0x5c451e
jmp 0x5c4524
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.005d82b0
mov ecx, dword [ebp + 0x14]
call fcn.005d83c0
lea ecx, [esp + 0x3c]
call fcn.005d82d0
cmp byte [esp + 0x1b], 0
je 0x5c4c2c
add dword [ebx + 0x10], 0xffffffff
jne 0x5c4c2c
push 0
lea eax, [ebx + 8]
push eax
mov dword [ebx + 0x10], 0
call dword [0x100830c4]
mov edx, dword [ebx + 0xc]
test edx, edx
lea eax, [ebx + 0xc]
jle 0x5c4c2c
push eax
call dword [0x100830a4]
mov eax, dword [ebx + 0x14]
push 0
push 1
push eax
call dword [0x100830c0]
jmp 0x5c4c2c
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.005d82b0
lea ecx, [esp + 0x10]
call fcn.005d8300
mov dx, word [eax]
shr dx, 1
lea ecx, [esp + 0x54]
movzx esi, dx
call fcn.005d83a0
movzx edi, ax
lea ecx, [esp + 0x54]
add edi, edi
call fcn.005d83a0
sub si, ax
lea ecx, [esp + 0x10]
push esi
call fcn.005d8300
mov eax, dword [eax + 4]
add eax, edi
push eax
lea ecx, [esp + 0x18c]
call fcn.005bd3a0
mov ecx, eax
call fcn.005d8300
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.005d8250
lea ecx, [esp + 0x54]
call fcn.005d82d0
lea ecx, [esp + 0x3c]
call fcn.005d82d0
cmp byte [esp + 0x1b], 0
je 0x5c4c2c
add dword [ebx + 0x10], 0xffffffff
jne 0x5c4c2c
push 0
lea eax, [ebx + 8]
push eax
mov dword [ebx + 0x10], 0
call dword [0x100830c4]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
lea eax, [ebx + 0xc]
jle 0x5c4c2c
push eax
call dword [0x100830a4]
mov edx, dword [ebx + 0x14]
push 0
push 1
push edx
call dword [0x100830c0]
jmp 0x5c4c2c
test eax, eax
jne 0x5c49ca
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.005d8250
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
sub edx, ebx
push edx
push eax
lea ecx, [esp + 0xfc]
call fcn.005bd3a0
mov ecx, eax
call fcn.005d8300
push eax
lea ecx, [esp + 0x14]
call fcn.005d8310
lea ecx, [esp + 0x10]
call fcn.005d8300
mov cx, word [eax]
shr cx, 1
movzx edx, cx
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], 1
jmp 0x5c49ce
test esi, esi
je 0x5c49d7
push esi
call fcn.00575460
add esp, 4
lea ecx, [esp + 0x44]
call fcn.00576590
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x10]
call fcn.005d8300
cmp dword [eax + 4], esi
je 0x5c4a10
sub esi, 2
add ebx, 0xffff
cmp dword [esp + 0x30], 0
mov dword [esp + 0x1c], esi
je 0x5c4701
jmp 0x5c4a26
cmp dword [esp + 0x30], 0
jne 0x5c4a26
lea ecx, [esp + 0x10]
call fcn.005d8300
lea ecx, [edi + edi]
mov word [eax], cx
lea ecx, [esp + 0x10]
call fcn.005d8300
mov edx, dword [eax + 4]
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], edx
xor edi, edi
call fcn.005d8300
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 0x5c4a65
cmp di, word [esp + 0x20]
jne 0x5c4b6b
lea ecx, [esp + 0x10]
call fcn.005d8300
mov edx, dword [esp + 0x1c]
lea ecx, [edi + edi]
mov word [eax], cx
xor ebx, ebx
cmp word [edx], 0x5c
jne 0x5c4a92
lea ecx, [esp + 0x10]
call fcn.005d8300
add word [eax], 2
mov ebx, 1
mov esi, dword [0x10143fa4]
push 0x21
push 3
lea ecx, [esp + 0x104]
mov dword [esp + 0x34], 0
add esi, 0x134
call fcn.005edbd0
mov ecx, eax
call fcn.005d8300
push eax
lea ecx, [esp + 0x1b8]
call fcn.005d8300
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 0x5c4b57
push 0x400
call fcn.00575310
mov esi, dword [0x10143fa4]
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, 0x4f4
call fcn.005edbd0
mov ecx, eax
call fcn.005d8300
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 0x5c4b78
lea ecx, [esp + 0x94]
call fcn.005739a0
lea ecx, [esp + 0x2c]
call fcn.00576590
cmp di, word [esp + 0x20]
je 0x5c4c47
add edi, 1
add dword [esp + 0x1c], 2
jmp 0x5c4a50
mov esi, dword [ebp + 0x10]
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
call fcn.005d82b0
test ebx, ebx
je 0x5c4b97
mov ecx, esi
call fcn.005d8300
add word [eax], 0xfffe
mov eax, dword [esp + 0x20]
cmp ax, di
jne 0x5c4bc1
push 0x1008341c
lea ecx, [esp + 0x120]
call fcn.005bd3c0
mov ecx, eax
call fcn.005d8300
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edx
push eax
jmp 0x5c4bf5
sub eax, edi
sub eax, 1
push eax
lea ecx, [esp + 0x14]
call fcn.005d8300
mov edx, dword [eax + 4]
movzx ecx, di
lea eax, [edx + ecx*2 + 2]
push eax
lea ecx, [esp + 0x134]
call fcn.005bd3a0
mov ecx, eax
call fcn.005d8300
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
mov ecx, dword [ebp + 0x14]
call fcn.005d8250
lea ecx, [esp + 0x94]
call fcn.005739a0
lea ecx, [esp + 0x2c]
call fcn.00576590
mov edx, dword [ebp + 0x10]
sub esp, 8
mov ecx, esp
push edx
call fcn.005d8230
mov ecx, dword [esp + 0x98]
call fcn.005c3b30
lea ecx, [esp + 0x10]
call fcn.005d82d0
lea ecx, [esp + 0x28]
call fcn.005ee590
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [esp + 0x10]
call fcn.005d8300
mov ecx, dword [esp + 0x20]
lea edx, [ecx + ecx]
push 1
push 0x10083b08
lea ecx, [esp + 0x18]
mov word [eax], dx
call fcn.005d8300
push eax
lea ecx, [esp + 0x148]
call fcn.005bd400
mov ecx, eax
call fcn.005bd4f0
test eax, eax
je 0x5c4dad
mov eax, dword [0x100919d4]
mov ecx, dword [0x100919d8]
mov edx, dword [0x100919dc]
mov dword [esp + 0xb8], eax
mov ax, word [0x100919e0]
mov dword [esp + 0xbc], ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xc0], edx
mov word [esp + 0xc4], ax
call fcn.005d8300
mov cx, word [eax]
and cx, 0xfffe
cmp cx, 0xc
jb 0x5c4dad
lea ecx, [esp + 0x10]
call fcn.005d8300
mov edx, dword [eax + 4]
cmp word [edx + 0xa], 0x3a
jne 0x5c4dad
lea ecx, [esp + 0x10]
call fcn.005d8300
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.005bd3c0
mov ecx, eax
call fcn.005d8300
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x10]
push edx
call fcn.005d8250
lea ecx, [esp + 0x10]
mov edi, 6
call fcn.005d8300
cmp word [eax], 0xc
jne 0x5c4d55
push 0x1008341c
lea ecx, [esp + 0x160]
call fcn.005bd3c0
jmp 0x5c4d92
lea ecx, [esp + 0x10]
call fcn.005d8300
mov esi, dword [eax + 4]
add esi, 0xc
cmp word [esi], 0x5c
jne 0x5c4d72
add esi, 2
mov edi, 7
lea ecx, [esp + 0x10]
call fcn.005d8300
movzx eax, word [eax]
shr ax, 1
sub ax, di
lea ecx, [esp + 0x16c]
push eax
push esi
call fcn.005bd3a0
mov ecx, eax
call fcn.005d8300
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.005d8250
jmp 0x5c4c12
mov ecx, dword [ebp + 0x10]
call fcn.005d83c0
mov ecx, dword [ebp + 0x14]
lea eax, [esp + 0x10]
push eax
call fcn.005d82b0
jmp 0x5c4c2c