Function at 0x1005cbf0
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x188
push ebx
push ebp
mov ebp, ecx
xor eax, eax
mov ecx, dword [esp + 0x194]
xor edx, edx
mov dword [esp + 0x4c], eax
push esi
mov ebx, dword [ebp + 0x1c]
xor esi, esi
mov ecx, dword [ecx]
mov eax, ecx
neg eax
mov dword [esp + 0x28], edx
test ecx, ecx
mov dword [esp + 0x10], edx
mov edx, 0x1015c15c
mov dword [esp + 0x44], ebp
cmovns eax, ecx
mov dword [esp + 0x24], ebx
movzx eax, ax
mov ecx, ebp
mov dword [esp + 0x34], eax
lea eax, [esp + 0x54]
push eax
mov dword [esp + 0x3c], esi
call fcn.1003f0e0
test eax, eax
jne 0x1005cc98
mov eax, dword [esp + 0x58]
mov dword [esp + 0x48], eax
push edi
cmp eax, 0x774f4632
je 0x1005cc92
mov edi, dword [esp + 0x60]
cmp edi, dword [ebp + 4]
jne 0x1005cc92
mov ax, word [esp + 0x64]
test ax, ax
je 0x1005cc92
movzx ecx, ax
lea eax, [ecx + ecx*4]
lea eax, [eax*4 + 0x30]
cmp eax, edi
jae 0x1005cc92
mov edx, dword [esp + 0x70]
test edx, edx
jne 0x1005cca4
cmp dword [esp + 0x74], esi
jne 0x1005cc92
cmp dword [esp + 0x78], esi
je 0x1005ccb0
mov eax, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x188
ret 8
cmp dword [esp + 0x74], esi
je 0x1005ccb0
cmp dword [esp + 0x78], esi
je 0x1005cc92
cmp edx, edi
jae 0x1005cc92
mov eax, edi
sub eax, edx
cmp eax, dword [esp + 0x74]
jb 0x1005cc92
mov edx, dword [esp + 0x7c]
test edx, edx
jne 0x1005cccf
cmp dword [esp + 0x80], esi
jne 0x1005cc92
cmp edx, edi
jae 0x1005cc92
mov eax, edi
sub eax, edx
cmp eax, dword [esp + 0x80]
jb 0x1005cc92
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x98], eax
test ecx, ecx
je 0x1005d256
mov eax, dword [ebx + 4]
mov edx, ecx
shl edx, 5
mov ecx, ebx
call eax
mov ebx, eax
mov edi, 0x40
xor eax, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
cmovne edi, eax
je 0x1005cd2f
movzx esi, word [esp + 0x64]
mov eax, esi
shl eax, 5
push eax
push 0
push ebx
call fcn.10120570
add esp, 0xc
mov ebx, esi
jmp 0x1005cd46
mov dword [esp + 0x10], ebx
mov eax, ebx
test edi, edi
jne 0x1005d9f7
movzx ebx, word [esp + 0x64]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
lea edx, [ebx*4]
mov ecx, eax
mov eax, dword [eax + 4]
call eax
mov esi, eax
mov edi, 0x40
xor eax, eax
test esi, esi
cmovne edi, eax
je 0x1005cd90
lea eax, [ebx*4]
push eax
push 0
push esi
call fcn.10120570
movzx eax, word [esp + 0x70]
add esp, 0xc
mov edi, dword [esp + 0x10]
mov edx, esi
mov dword [esp + 0x30], 0
jmp 0x1005cdc9
mov eax, dword [esp + 0x10]
mov edx, esi
mov dword [esp + 0x44], edx
mov ecx, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], eax
test edi, edi
jne 0x1005d9f7
movzx ebx, word [esp + 0x64]
mov dword [esp + 0x30], edi
mov edi, ecx
mov dword [esp + 0x18], esi
mov eax, ebx
mov dword [esp + 0x10], edi
test ebx, ebx
je 0x1005d26a
lea ebx, [edi + 4]
nop dword [eax]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x50], edx
mov edx, esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], edi
mov byte [esp + 0x34], 0
mov dword [esp + 0x20], 0
test eax, eax
je 0x1005ce1b
push 1
lea edx, [esp + 0x38]
push edx
mov edx, ecx
mov ecx, ebp
call eax
cmp eax, 1
jne 0x1005d248
mov al, byte [esp + 0x34]
mov edx, esi
jmp 0x1005ce2a
cmp ecx, dword [ebp + 4]
jae 0x1005d248
mov eax, dword [ebp]
mov al, byte [ecx + eax]
inc dword [ebp + 8]
lea ecx, [ebx - 4]
mov byte [ecx], al
and al, 0x3f
cmp al, 0x3f
jne 0x1005ce59
lea edx, [esp + 0x20]
mov ecx, ebp
call fcn.1003f060
mov edi, dword [esp + 0x20]
mov dword [ebx], eax
test edi, edi
jne 0x1005d1c6
lea ecx, [ebx - 4]
jmp 0x1005d12a
mov dword [esp + 0x9c], 0x636d6170
mov dword [esp + 0xa0], 0x68656164
mov dword [esp + 0xa4], 0x68686561
mov dword [esp + 0xa8], 0x686d7478
mov dword [esp + 0xac], 0x6d617870
mov dword [esp + 0xb0], 0x6e616d65
mov dword [esp + 0xb4], 0x4f532f32
mov dword [esp + 0xb8], 0x706f7374
mov dword [esp + 0xbc], 0x63767420
mov dword [esp + 0xc0], 0x6670676d
mov dword [esp + 0xc4], 0x676c7966
mov dword [esp + 0xc8], 0x6c6f6361
mov dword [esp + 0xcc], 0x70726570
mov dword [esp + 0xd0], 0x43464620
mov dword [esp + 0xd4], 0x564f5247
mov dword [esp + 0xd8], 0x45424454
mov dword [esp + 0xdc], 0x45424c43
mov dword [esp + 0xe0], 0x67617370
mov dword [esp + 0xe4], 0x68646d78
mov dword [esp + 0xe8], 0x6b65726e
mov dword [esp + 0xec], 0x4c545348
mov dword [esp + 0xf0], 0x50434c54
mov dword [esp + 0xf4], 0x56444d58
mov dword [esp + 0xf8], 0x76686561
mov dword [esp + 0xfc], 0x766d7478
mov dword [esp + 0x100], 0x42415345
mov dword [esp + 0x104], 0x47444546
mov dword [esp + 0x108], 0x47504f53
mov dword [esp + 0x10c], 0x47535542
mov dword [esp + 0x110], 0x45425343
mov dword [esp + 0x114], 0x4a535446
mov dword [esp + 0x118], 0x4d415448
mov dword [esp + 0x11c], 0x43424454
mov dword [esp + 0x120], 0x43424c43
mov dword [esp + 0x124], 0x434f4c52
mov dword [esp + 0x128], 0x4350414c
mov dword [esp + 0x12c], 0x53564720
mov dword [esp + 0x130], 0x73626978
mov dword [esp + 0x134], 0x61636e74
mov dword [esp + 0x138], 0x61766172
mov dword [esp + 0x13c], 0x62646174
mov dword [esp + 0x140], 0x626c6f63
mov dword [esp + 0x144], 0x62736c6e
mov dword [esp + 0x148], 0x63766172
mov dword [esp + 0x14c], 0x66647363
mov dword [esp + 0x150], 0x66656174
mov dword [esp + 0x154], 0x666d7478
mov dword [esp + 0x158], 0x66766172
mov dword [esp + 0x15c], 0x67766172
mov dword [esp + 0x160], 0x68737479
mov dword [esp + 0x164], 0x6a757374
mov dword [esp + 0x168], 0x6c636172
mov dword [esp + 0x16c], 0x6d6f7274
mov dword [esp + 0x170], 0x6d6f7278
mov dword [esp + 0x174], 0x6f706264
mov dword [esp + 0x178], 0x70726f70
mov dword [esp + 0x17c], 0x7472616b
mov dword [esp + 0x180], 0x5a617066
mov dword [esp + 0x184], 0x53696c66
mov dword [esp + 0x188], 0x476c6174
mov dword [esp + 0x18c], 0x476c6f63
mov dword [esp + 0x190], 0x46656174
mov dword [esp + 0x194], 0x53696c6c
cmp al, 0x3e
ja 0x1005d232
movzx eax, al
mov eax, dword [esp + eax*4 + 0x9c]
mov dword [ebx], eax
test eax, eax
je 0x1005d238
mov cl, byte [ecx]
xor esi, esi
shr cl, 6
cmp eax, 0x676c7966
je 0x1005d14a
cmp eax, 0x6c6f6361
je 0x1005d14a
test cl, cl
je 0x1005d154
mov esi, 0x100
jmp 0x1005d154
test cl, cl
mov eax, 0x100
cmove esi, eax
movzx eax, cl
lea edx, [ebx + 4]
mov ecx, ebp
or esi, eax
call fcn.1005cb60
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
jne 0x1005d1c6
mov eax, dword [ebx + 4]
lea ecx, [ebx + 8]
mov edx, dword [esp + 0x50]
mov dword [ecx], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x44], edx
test esi, 0x100
je 0x1005d1d6
mov edx, ecx
mov ecx, ebp
call fcn.1005cb60
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
jne 0x1005d1c6
cmp dword [ebx], 0x6c6f6361
mov edi, dword [esp + 0x50]
mov edx, edi
mov ecx, dword [esp + 0x24]
mov eax, ecx
mov dword [esp + 0x44], edx
jne 0x1005d1d3
cmp dword [ebx + 8], 0
lea ecx, [ebx + 8]
mov dword [esp + 0x44], edi
je 0x1005d1d6
mov edi, 8
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
jmp 0x1005d9fb
lea ecx, [ebx + 8]
mov edi, dword [esp + 0x3c]
mov ecx, dword [ecx]
add edi, ecx
cmp edi, dword [esp + 0x3c]
jb 0x1005d1c1
mov ebp, dword [esp + 0x3c]
mov dword [ebx + 0xc], esi
mov esi, dword [esp + 0x30]
mov dword [ebx + 0x14], ecx
lea ecx, [ebx - 4]
mov dword [ebx + 0x10], ebp
add ebx, 0x20
mov ebp, dword [esp + 0x48]
mov dword [edx + esi*4], ecx
inc esi
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x30], esi
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x18]
mov esi, edi
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x30], eax
jge 0x1005d226
mov edi, ecx
jmp 0x1005cdd0
mov esi, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], ecx
jmp 0x1005d26a
mov dword [ebx], 0
mov eax, dword [esp + 0x40]
mov edi, 8
mov esi, edx
jmp 0x1005d9fb
mov edi, 0x55
mov byte [ebx - 4], 0
jmp 0x1005d9f7
xor edx, edx
mov dword [esp + 0x10], eax
xor esi, esi
mov dword [esp + 0x44], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], esi
mov di, word [esp + 0x64]
movzx eax, di
mov eax, dword [edx + eax*4 - 4]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
add eax, ecx
mov dword [esp + 0x84], eax
cmp eax, ecx
jb 0x1005d9f2
mov eax, 1
xor edx, edx
cmp dword [esp + 0x4c], 0x74746366
mov word [esp + 0x90], ax
jne 0x1005d510
lea edx, [esp + 0x20]
mov ecx, ebp
call fcn.1003f060
mov edi, dword [esp + 0x20]
mov dword [esp + 0x8c], eax
test edi, edi
jne 0x1005d9f7
cmp eax, 0x10000
je 0x1005d2da
cmp eax, 0x20000
jne 0x1005d9f2
lea edx, [esp + 0x90]
mov ecx, ebp
call fcn.1005c9c0
mov edi, eax
test edi, edi
jne 0x1005d2fb
cmp word [esp + 0x90], ax
jne 0x1005d313
lea edi, [eax + 8]
mov ebx, dword [esp + 0x98]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
jmp 0x1005d9ff
movzx eax, word [esp + 0x90]
mov dword [esp + 0x24], eax
test eax, eax
je 0x1005d4fe
lea ebx, [eax + eax*2]
mov eax, dword [esp + 0x28]
shl ebx, 2
mov ecx, eax
mov edx, ebx
mov eax, dword [eax + 4]
call eax
mov ecx, eax
mov edi, 0x40
xor eax, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
cmovne edi, eax
je 0x1005d371
push ebx
push eax
push ecx
call fcn.10120570
mov ebx, dword [esp + 0x28]
add esp, 0xc
xor eax, eax
mov dword [esp + 0x3c], eax
movzx eax, word [esp + 0x90]
mov dword [esp + 0x24], eax
jmp 0x1005d399
mov dword [esp + 0x20], edi
mov ebx, ecx
mov dword [esp + 0x1c], ecx
test edi, edi
jne 0x1005d4ed
xor eax, eax
mov dword [esp + 0x3c], eax
movzx eax, word [esp + 0x90]
test eax, eax
je 0x1005d4c1
add ebx, 4
nop dword [eax]
mov edx, ebx
mov ecx, ebp
call fcn.1005c9c0
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
jne 0x1005d4e9
lea edx, [esp + 0x20]
mov ecx, ebp
call fcn.1003f060
mov edi, dword [esp + 0x20]
mov dword [ebx - 4], eax
test edi, edi
jne 0x1005d4e9
movzx eax, word [ebx]
test eax, eax
je 0x1005d41d
lea ebp, [eax + eax]
mov eax, dword [esp + 0x28]
mov ecx, eax
mov edx, ebp
mov eax, dword [eax + 4]
call eax
mov esi, eax
mov edi, 0x40
xor eax, eax
test esi, esi
cmovne edi, eax
je 0x1005d40c
push ebp
push eax
push esi
call fcn.10120570
add esp, 0xc
mov dword [esp + 0x20], edi
mov dword [ebx + 4], esi
jmp 0x1005d42c
mov dword [esp + 0x20], edi
mov dword [ebx + 4], esi
test edi, edi
jne 0x1005d4e9
jmp 0x1005d42c
mov dword [esp + 0x20], 0
mov dword [ebx + 4], 0
xor eax, eax
mov dword [esp + 0x30], 0
xor esi, esi
xor ebp, ebp
cmp ax, word [ebx]
jae 0x1005d4a3
nop
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x34]
call fcn.1005c9c0
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
jne 0x1005d4e9
mov cx, word [esp + 0x34]
cmp cx, word [esp + 0x64]
jae 0x1005d4e4
mov eax, dword [ebx + 4]
mov word [eax + ebp*2], cx
mov eax, dword [esp + 0x44]
movzx ecx, cx
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 4]
cmp eax, 0x6c6f6361
jne 0x1005d4d7
mov esi, ecx
mov ecx, dword [esp + 0x30]
movzx eax, word [ebx]
inc ebp
cmp ebp, eax
jb 0x1005d440
test ecx, ecx
jne 0x1005d498
test esi, esi
je 0x1005d4a3
cmp ecx, esi
ja 0x1005d4e4
sub esi, ecx
cmp esi, 1
jne 0x1005d4e4
mov esi, dword [esp + 0x3c]
add ebx, 0xc
mov ebp, dword [esp + 0x48]
inc esi
mov dword [esp + 0x3c], esi
cmp esi, dword [esp + 0x24]
jl 0x1005d3a0
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x8c]
mov di, word [esp + 0x64]
mov dword [esp + 0x4c], eax
jmp 0x1005d514
cmp eax, 0x676c7966
jne 0x1005d484
mov dword [esp + 0x30], ecx
jmp 0x1005d488
mov edi, 8
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jmp 0x1005d9ff
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
jmp 0x1005d4c1
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x60]
add ecx, 3
add ecx, dword [ebp + 8]
and ecx, 0xfffffffc
cmp ecx, ebx
jbe 0x1005d53f
mov eax, dword [esp + 0x10]
mov edi, 8
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jmp 0x1005d9ff
mov eax, dword [esp + 0x70]
test eax, eax
je 0x1005d56d
cmp ecx, eax
je 0x1005d561
mov eax, dword [esp + 0x10]
mov edi, 8
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jmp 0x1005d9ff
mov ecx, dword [esp + 0x74]
add ecx, 3
add ecx, eax
and ecx, 0xfffffffc
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x1005d59e
cmp ecx, eax
je 0x1005d58f
mov eax, dword [esp + 0x10]
mov edi, 8
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jmp 0x1005d9ff
mov ecx, dword [esp + 0x80]
add ecx, 3
add ecx, eax
and ecx, 0xfffffffc
lea eax, [ebx + 3]
and eax, 0xfffffffc
cmp ecx, eax
je 0x1005d5be
mov eax, dword [esp + 0x10]
mov edi, 8
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jmp 0x1005d9ff
mov eax, dword [esp + 0x1a0]
movzx ecx, word [esp + 0x90]
mov dword [eax], ecx
mov eax, dword [esp + 0x19c]
mov eax, dword [eax]
test eax, eax
jns 0x1005d5e0
dec dword [esp + 0x38]
cmp dword [esp + 0x38], ecx
jl 0x1005d604
test eax, eax
js 0x1005d600
mov eax, dword [esp + 0x10]
mov edi, 6
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jmp 0x1005d9ff
xor eax, eax
jmp 0x1005d608
mov eax, dword [esp + 0x38]
test edx, edx
je 0x1005d7de
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*2]
lea ebx, [ecx + eax*4]
movzx eax, word [ebx + 4]
test eax, eax
je 0x1005d668
shl eax, 2
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x28]
mov ecx, eax
mov eax, dword [eax + 4]
call eax
mov esi, eax
mov edi, 0x40
xor eax, eax
test esi, esi
cmovne edi, eax
je 0x1005d65a
push dword [esp + 0x24]
push eax
push esi
call fcn.10120570
add esp, 0xc
mov dword [esp + 0x38], esi
jmp 0x1005d672
mov dword [esp + 0x38], esi
test edi, edi
jne 0x1005d4e9
jmp 0x1005d672
mov dword [esp + 0x38], 0
xor esi, esi
movzx eax, word [ebx + 4]
xor edi, edi
xor ecx, ecx
mov edx, eax
mov dword [esp + 0x24], edx
cmp di, ax
jae 0x1005d6aa
mov edi, dword [esp + 0x44]
nop dword [eax]
mov eax, dword [ebx + 8]
movzx eax, word [eax + ecx*2]
mov eax, dword [edi + eax*4]
mov dword [esi + ecx*4], eax
inc ecx
movzx edx, word [ebx + 4]
cmp ecx, edx
jl 0x1005d690
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x44]
xor edi, edi
movzx eax, dx
movzx edx, word [esp + 0x64]
mov dword [esp + 0x18], ecx
test eax, eax
je 0x1005d76d
shl eax, 2
test edx, edx
jne 0x1005d705
mov edx, eax
mov eax, dword [esp + 0x28]
mov ecx, eax
mov eax, dword [eax + 4]
call eax
xor ecx, ecx
mov dword [esp + 0x18], eax
test eax, eax
mov edi, 0x40
mov esi, eax
cmovne edi, ecx
mov dword [esp + 0x50], edi
jne 0x1005d73b
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], esi
test edi, edi
jne 0x1005d4e9
jmp 0x1005d788
push ecx
push eax
mov eax, dword [esp + 0x30]
mov ecx, eax
shl edx, 2
mov eax, dword [eax + 0xc]
call eax
mov esi, eax
test esi, esi
jne 0x1005d733
mov esi, dword [esp + 0x18]
lea edi, [eax + 0x40]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jmp 0x1005d9ff
mov dword [esp + 0x18], esi
mov dword [esp + 0x50], edi
mov edx, dword [esp + 0x24]
movzx ecx, word [esp + 0x64]
mov ebp, dword [esp + 0x48]
movzx eax, dx
cmp eax, ecx
jbe 0x1005d6f0
sub eax, ecx
shl eax, 2
push eax
lea eax, [esi + ecx*4]
push 0
push eax
call fcn.10120570
mov eax, dword [esp + 0x5c]
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x1005d788
test ecx, ecx
je 0x1005d77e
mov eax, dword [esp + 0x28]
mov edx, ecx
mov ecx, eax
mov eax, dword [eax + 8]
call eax
xor esi, esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x18], esi
xor eax, eax
xor ecx, ecx
cmp ax, word [ebx + 4]
jae 0x1005d7b2
mov edx, dword [esp + 0x38]
sub edx, esi
nop dword [eax + eax]
mov eax, dword [edx + esi]
lea esi, [esi + 4]
mov dword [esi - 4], eax
inc ecx
movzx eax, word [ebx + 4]
cmp ecx, eax
jl 0x1005d7a0
mov eax, dword [esp + 0x38]
test eax, eax
je 0x1005d7c7
mov edx, eax
mov eax, dword [esp + 0x28]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov edi, dword [ebx]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x5c], edi
mov di, word [ebx + 4]
mov ebx, dword [esp + 0x60]
mov word [esp + 0x64], di
mov ecx, dword [esp + 0x68]
movzx esi, di
shl esi, 4
add esi, 0xc
cmp ecx, esi
jbe 0x1005d80b
mov eax, ecx
shr eax, 6
cmp eax, ebx
jbe 0x1005d7ff
mov esi, ebx
shl esi, 6
jmp 0x1005d801
mov esi, ecx
mov eax, 0x4000000
cmp esi, eax
cmovae esi, eax
mov ebx, dword [esp + 0x28]
lea eax, [esp + 0x20]
push eax
mov edx, esi
mov ecx, ebx
call fcn.1003f400
mov edi, dword [esp + 0x20]
mov edx, eax
mov dword [esp + 0x2c], edx
test edi, edi
jne 0x1005d9e0
mov eax, dword [ebx + 4]
lea edx, [edi + 0x28]
mov ecx, ebx
call eax
mov edx, dword [esp + 0x2c]
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x1005d85b
mov esi, dword [esp + 0x18]
lea edi, [eax + 0x40]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
jmp 0x1005da01
mov eax, dword [esp + 0x4c]
xorps xmm0, xmm0
mov di, word [esp + 0x64]
movups xmmword [ecx], xmm0
shr eax, 0x18
movups xmmword [ecx + 0x10], xmm0
mov dword [esp + 0x20], 0
movq qword [ecx + 0x20], xmm0
mov byte [edx], al
mov eax, dword [esp + 0x4c]
shr eax, 0x10
mov byte [edx + 1], al
mov eax, dword [esp + 0x4c]
shr eax, 8
mov byte [edx + 2], al
mov al, byte [esp + 0x5c]
mov byte [edx + 3], al
mov dword [esp + 0x14], ecx
test di, di
je 0x1005d90f
movzx eax, di
xor ebx, ebx
mov dword [esp + 0x14], ecx
test eax, eax
je 0x1005d8ba
mov dword [esp + 0x14], ecx
inc ebx
shr eax, 1
jne 0x1005d8b5
dec ebx
mov eax, 1
mov ecx, ebx
shl eax, cl
shl eax, 4
mov dword [esp + 0x24], eax
movzx ecx, di
shl ecx, 4
sub ecx, eax
mov eax, dword [esp + 0x64]
shr eax, 8
mov byte [edx + 4], al
mov al, byte [esp + 0x64]
mov byte [edx + 5], al
mov eax, dword [esp + 0x24]
shr eax, 8
mov byte [edx + 6], al
mov eax, dword [esp + 0x24]
mov byte [edx + 7], al
mov eax, ebx
shr eax, 8
mov byte [edx + 8], al
mov eax, ecx
shr eax, 8
mov byte [edx + 9], bl
mov ebx, dword [esp + 0x28]
mov byte [edx + 0xa], al
mov byte [edx + 0xb], cl
push 0x1005c060
movzx eax, di
mov edi, dword [esp + 0x1c]
push 4
push eax
push edi
call fcn.1012b8e0
mov edx, dword [esp + 0x94]
add esp, 0x10
cmp edx, 1
jae 0x1005d951
mov edi, 8
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
jmp 0x1005da01
cmp edx, esi
jbe 0x1005d973
mov esi, dword [esp + 0x18]
mov edi, 8
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
jmp 0x1005da01
lea eax, [esp + 0x20]
mov ecx, ebx
push eax
call fcn.1003f400
mov edi, dword [esp + 0x20]
mov dword [esp + 0x54], eax
test edi, edi
jne 0x1005d938
mov edx, dword [esp + 0x6c]
mov ecx, ebp
call fcn.1003ef80
mov edi, eax
test edi, edi
jne 0x1005d938
lea edi, [eax + 7]
cmp dword [ebp + 0x14], eax
je 0x1005d9bc
mov edx, dword [ebp]
mov eax, dword [ebp + 0x1c]
test edx, edx
je 0x1005d9b5
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov dword [ebp], 0
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov dword [ebp + 0x20], 0
mov dword [ebp + 0x24], 0
jmp 0x1005da01
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jmp 0x1005da01
mov edi, 8
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov ecx, ebx
xor edx, edx
mov ebp, dword [esp + 0x28]
test eax, eax
je 0x1005da14
mov edx, eax
mov ecx, ebp
mov eax, dword [ebp + 8]
call eax
jmp 0x1005da24
mov eax, dword [esp + 0x54]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x54], eax
test esi, esi
je 0x1005da31
mov eax, dword [ebp + 8]
mov edx, esi
mov ecx, ebp
call eax
mov eax, dword [esp + 0x54]
test eax, eax
je 0x1005da42
mov edx, eax
mov ecx, ebp
mov eax, dword [ebp + 8]
call eax
test ebx, ebx
je 0x1005da86
movzx ebx, word [esp + 0x90]
test ebx, ebx
je 0x1005da7b
mov esi, dword [esp + 0x1c]
add esi, 8
nop dword [eax]
mov edx, dword [esi]
test edx, edx
je 0x1005da6d
mov eax, dword [ebp + 8]
mov ecx, ebp
call eax
mov dword [esi], 0
add esi, 0xc
sub ebx, 1
jne 0x1005da60
mov edx, dword [esp + 0x1c]
mov ecx, ebp
mov eax, dword [ebp + 8]
call eax
test edi, edi
je 0x1005dab5
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x1005da99
mov eax, dword [ebp + 8]
mov ecx, ebp
call eax
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x1005dab5
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x1005daac
mov ecx, ebx
call eax
mov esi, dword [ebp + 8]
mov edx, ebx
mov ecx, ebp
call esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x188
ret 8