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

Disassembly:
sub esp, 0x188
push ebx
push ebp
mov ebp, ecx
xor edx, edx
mov ecx, dword [esp + 0x194]
push edi
xor edi, edi
mov dword [esp + 0x30], edx
mov ebx, dword [ebp + 0x1c]
mov ecx, dword [ecx]
mov eax, ecx
neg eax
mov dword [esp + 0x4c], edx
test ecx, ecx
mov dword [esp + 0x14], edx
mov edx, 0x10121164
mov dword [esp + 0x3c], ebp
cmovns eax, ecx
mov dword [esp + 0x20], ebx
movzx eax, ax
mov ecx, ebp
mov dword [esp + 0x34], eax
lea eax, [esp + 0x54]
push eax
mov dword [esp + 0x14], edi
call fcn.10034bf0
test eax, eax
jne 0x10052c28
mov eax, dword [esp + 0x58]
mov dword [esp + 0x2c], eax
push esi
cmp eax, 0x774f4632
je 0x10052c22
mov edx, dword [esp + 0x60]
cmp edx, dword [ebp + 4]
jne 0x10052c22
mov ax, word [esp + 0x64]
test ax, ax
je 0x10052c22
movzx esi, ax
lea eax, [esi + esi*4]
lea eax, [eax*4 + 0x30]
cmp eax, edx
jae 0x10052c22
mov ecx, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
test ecx, ecx
jne 0x10052c34
test edi, edi
jne 0x10052c22
cmp dword [esp + 0x78], edi
je 0x10052c3f
mov eax, 8
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x188
ret 8
test edi, edi
je 0x10052c3f
cmp dword [esp + 0x78], 0
je 0x10052c22
cmp ecx, edx
jae 0x10052c22
mov eax, edx
sub eax, ecx
cmp eax, edi
jb 0x10052c22
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x80]
test ecx, ecx
jne 0x10052c5e
test edi, edi
jne 0x10052c22
cmp ecx, edx
jae 0x10052c22
mov eax, edx
sub eax, ecx
cmp eax, edi
jb 0x10052c22
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x98], eax
test esi, esi
je 0x10053202
mov eax, dword [ebx + 4]
mov edx, esi
shl edx, 5
mov ecx, ebx
call eax
mov ecx, eax
mov edi, 0x40
xor eax, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
cmovne edi, eax
je 0x10052cb2
mov eax, esi
shl eax, 5
push eax
push 0
push ecx
call fcn.100eae50
add esp, 0xc
jmp 0x10052cc4
mov dword [esp + 0x10], ecx
mov eax, ecx
test edi, edi
jne 0x100531f7
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 4]
lea edx, [esi*4]
mov ecx, ebx
call eax
mov edx, eax
mov edi, 0x40
xor eax, eax
mov dword [esp + 0x14], edx
test edx, edx
cmovne edi, eax
je 0x10052d10
lea eax, [esi*4]
push eax
push 0
push edx
call fcn.100eae50
mov edx, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x44], eax
mov edi, edx
movzx eax, word [esp + 0x64]
jmp 0x10052d4d
mov eax, dword [esp + 0x10]
mov ecx, eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
test edi, edi
jne 0x100531f9
movzx esi, word [esp + 0x64]
xor eax, eax
mov dword [esp + 0x44], eax
mov eax, esi
mov dword [esp + 0x14], edx
mov edi, edx
mov dword [esp + 0x10], ecx
test esi, esi
je 0x10053216
lea ebx, [ecx + 4]
mov dword [esp + 0x48], eax
mov esi, ecx
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x14], edx
mov byte [esp + 0x28], 0
mov dword [esp + 0x20], 0
test eax, eax
je 0x10052d9d
push 1
lea edx, [esp + 0x2c]
push edx
mov edx, ecx
mov ecx, ebp
call eax
cmp eax, 1
jne 0x100531e1
mov al, byte [esp + 0x28]
jmp 0x10052dac
cmp ecx, dword [ebp + 4]
jae 0x100531e5
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 0x10052ddb
lea edx, [esp + 0x20]
mov ecx, ebp
call fcn.10034b70
mov edi, dword [esp + 0x20]
mov dword [ebx], eax
test edi, edi
jne 0x100531ca
lea ecx, [ebx - 4]
jmp 0x100530ac
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 0x100531bf
movzx eax, al
mov eax, dword [esp + eax*4 + 0x9c]
mov dword [ebx], eax
test eax, eax
je 0x100531c5
mov cl, byte [ecx]
xor esi, esi
shr cl, 6
cmp eax, 0x676c7966
je 0x100530cc
cmp eax, 0x6c6f6361
je 0x100530cc
test cl, cl
je 0x100530d6
mov esi, 0x100
jmp 0x100530d6
test cl, cl
mov eax, 0x100
cmove esi, eax
movzx eax, cl
lea edx, [ebx + 4]
mov ecx, ebp
or esi, eax
call fcn.10052af0
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
jne 0x10053192
mov eax, dword [ebx + 4]
mov edi, dword [esp + 0x54]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], edi
test esi, 0x100
je 0x10053145
mov ecx, dword [esp + 0x40]
lea edx, [ebx + 8]
call fcn.10052af0
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
jne 0x10053192
cmp dword [ebx], 0x6c6f6361
mov edx, dword [esp + 0x54]
mov edi, edx
mov ecx, dword [esp + 0x48]
mov eax, ecx
mov dword [esp + 0x2c], edi
jne 0x10053145
cmp dword [ebx + 8], 0
mov dword [esp + 0x2c], edx
jne 0x1005318d
mov ebp, dword [esp + 0x34]
mov ecx, dword [ebx + 8]
lea edx, [ecx + ebp]
cmp edx, ebp
jb 0x1005318d
mov dword [ebx + 0xc], esi
mov esi, dword [esp + 0x44]
mov dword [ebx + 0x14], ecx
lea ecx, [ebx - 4]
mov dword [ebx + 0x10], ebp
add ebx, 0x20
mov ebp, dword [esp + 0x3c]
mov dword [edi + esi*4], ecx
inc esi
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x34], edx
mov edx, ebp
mov dword [esp + 0x44], esi
mov dword [esp + 0x10], ecx
cmp esi, eax
jge 0x100531ab
mov ebp, dword [esp + 0x40]
jmp 0x10052d50
mov edi, 8
mov edx, dword [esp + 0x3c]
xor ebx, ebx
mov eax, dword [esp + 0x4c]
mov ecx, ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
jmp 0x100538ff
mov ebx, dword [esp + 0x24]
mov edx, ebp
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x10], ecx
jmp 0x10053216
mov dword [ebx], 0
mov edi, 8
mov edx, dword [esp + 0x3c]
mov eax, esi
xor ebx, ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov ecx, ebx
jmp 0x100538ff
mov edx, dword [esp + 0x14]
mov byte [ebx - 4], 0
mov edi, 0x55
xor ebx, ebx
mov ecx, ebx
jmp 0x100538fb
xor edx, edx
xor ebx, ebx
mov ecx, ebx
jmp 0x100538fb
xor edi, edi
mov dword [esp + 0x10], eax
xor edx, edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edx
movzx eax, word [esp + 0x64]
mov eax, dword [edi + eax*4 - 4]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
add eax, ecx
mov dword [esp + 0x84], eax
cmp eax, ecx
jae 0x10053240
xor ebx, ebx
mov edi, 8
mov ecx, ebx
jmp 0x100538fb
mov eax, 1
xor esi, esi
cmp dword [esp + 0x30], 0x74746366
mov word [esp + 0x90], ax
jne 0x100534be
lea edx, [esp + 0x20]
mov ecx, ebp
call fcn.10034b70
mov edi, dword [esp + 0x20]
mov dword [esp + 0x8c], eax
test edi, edi
jne 0x10053288
cmp eax, 0x10000
je 0x10053295
cmp eax, 0x20000
je 0x10053295
lea edi, [esi + 8]
mov edx, dword [esp + 0x14]
xor ebx, ebx
mov ecx, ebx
jmp 0x100538fb
lea edx, [esp + 0x90]
mov ecx, ebp
call fcn.10052950
mov edi, eax
test edi, edi
jne 0x100532b6
cmp word [esp + 0x90], si
jne 0x100532cc
lea edi, [eax + 8]
mov ebx, dword [esp + 0x98]
mov ecx, esi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
jmp 0x100538fb
movzx eax, word [esp + 0x90]
mov dword [esp + 0x34], eax
test eax, eax
je 0x1005349f
lea esi, [eax + eax*2]
mov ecx, ebx
mov eax, dword [ebx + 4]
shl esi, 2
mov edx, esi
call eax
mov ecx, eax
mov edi, 0x40
xor eax, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
cmovne edi, eax
je 0x10053326
push esi
push eax
push ecx
call fcn.100eae50
mov ebx, dword [esp + 0x28]
add esp, 0xc
xor eax, eax
mov dword [esp + 0x30], eax
movzx eax, word [esp + 0x90]
mov dword [esp + 0x34], eax
jmp 0x1005334e
mov dword [esp + 0x20], edi
mov ebx, ecx
mov dword [esp + 0x1c], ecx
test edi, edi
jne 0x100538ef
xor eax, eax
mov dword [esp + 0x30], eax
movzx eax, word [esp + 0x90]
test eax, eax
je 0x10053479
add ebx, 4
mov edx, ebx
mov ecx, ebp
call fcn.10052950
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
jne 0x100538ef
lea edx, [esp + 0x20]
mov ecx, ebp
call fcn.10034b70
mov edi, dword [esp + 0x20]
mov dword [ebx - 4], eax
test edi, edi
jne 0x100538ef
movzx eax, word [ebx]
test eax, eax
je 0x100533ce
lea ebp, [eax + eax]
mov eax, dword [esp + 0x24]
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 0x100533bd
push ebp
push eax
push esi
call fcn.100eae50
add esp, 0xc
mov dword [esp + 0x20], edi
mov dword [ebx + 4], esi
jmp 0x100533dd
mov dword [esp + 0x20], edi
mov dword [ebx + 4], esi
test edi, edi
jne 0x100538ef
jmp 0x100533dd
mov dword [esp + 0x20], 0
mov dword [ebx + 4], 0
xor eax, eax
mov dword [esp + 0x44], 0
xor esi, esi
xor ebp, ebp
cmp ax, word [ebx]
jae 0x1005345f
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x28]
call fcn.10052950
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
jne 0x100538ef
mov cx, word [esp + 0x28]
cmp cx, word [esp + 0x64]
jae 0x100538ea
mov eax, dword [ebx + 4]
mov word [eax + ebp*2], cx
mov eax, dword [esp + 0x2c]
movzx ecx, cx
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 4]
cmp eax, 0x6c6f6361
jne 0x10053492
mov esi, ecx
mov ecx, dword [esp + 0x44]
movzx eax, word [ebx]
inc ebp
cmp ebp, eax
jb 0x100533f0
test ecx, ecx
jne 0x1005344c
test esi, esi
je 0x1005345f
cmp ecx, esi
ja 0x100538ea
sub esi, ecx
cmp esi, 1
jne 0x100538ea
mov esi, dword [esp + 0x30]
add ebx, 0xc
mov ebp, dword [esp + 0x40]
inc esi
mov dword [esp + 0x30], esi
cmp esi, dword [esp + 0x34]
jl 0x10053351
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x8c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
jmp 0x100534c4
cmp eax, 0x676c7966
jne 0x10053438
mov dword [esp + 0x44], ecx
jmp 0x1005343c
mov eax, dword [esp + 0x5c]
xor ebx, ebx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x30], eax
jmp 0x100534c4
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x60]
add ecx, 3
add ecx, dword [ebp + 8]
and ecx, 0xfffffffc
cmp ecx, edi
jbe 0x100534e3
mov edi, 8
jmp 0x100538f7
mov eax, dword [esp + 0x70]
test eax, eax
je 0x10053505
cmp ecx, eax
je 0x100534f9
mov edi, 8
jmp 0x100538f7
mov ecx, dword [esp + 0x74]
add ecx, 3
add ecx, eax
and ecx, 0xfffffffc
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x1005352a
cmp ecx, eax
je 0x1005351b
mov edi, 8
jmp 0x100538f7
mov ecx, dword [esp + 0x80]
add ecx, 3
add ecx, eax
and ecx, 0xfffffffc
lea eax, [edi + 3]
and eax, 0xfffffffc
cmp ecx, eax
je 0x1005353e
mov edi, 8
jmp 0x100538f7
mov eax, dword [esp + 0x1a0]
movzx ecx, word [esp + 0x90]
mov dword [eax], ecx
mov eax, dword [esp + 0x19c]
mov edx, dword [eax]
mov eax, dword [esp + 0x38]
dec eax
test edx, edx
cmovns eax, dword [esp + 0x38]
cmp eax, ecx
jl 0x1005357c
test edx, edx
js 0x1005357a
mov edx, dword [esp + 0x14]
mov edi, 6
jmp 0x100538f7
xor eax, eax
test esi, esi
je 0x10053730
lea eax, [eax + eax*2]
lea ebx, [ebx + eax*4]
movzx eax, word [ebx + 4]
mov dword [esp + 0x48], ebx
test eax, eax
je 0x100535d1
lea esi, [eax*4]
mov eax, dword [esp + 0x24]
mov ecx, eax
mov edx, esi
mov eax, dword [eax + 4]
call eax
mov ebp, eax
mov edi, 0x40
xor eax, eax
test ebp, ebp
cmovne edi, eax
je 0x100535c7
push esi
push eax
push ebp
call fcn.100eae50
add esp, 0xc
jmp 0x100535d3
test edi, edi
jne 0x100538ef
jmp 0x100535d3
xor ebp, ebp
movzx eax, word [ebx + 4]
xor esi, esi
xor ecx, ecx
mov edx, eax
mov dword [esp + 0x38], edx
cmp si, ax
jae 0x1005360b
mov esi, dword [esp + 0x2c]
nop word [eax + eax]
mov eax, dword [ebx + 8]
movzx eax, word [eax + ecx*2]
mov eax, dword [esi + eax*4]
mov dword [ebp + ecx*4], eax
inc ecx
movzx edx, word [ebx + 4]
cmp ecx, edx
jl 0x100535f0
mov dword [esp + 0x38], edx
movzx ecx, word [esp + 0x64]
xor edi, edi
movzx eax, dx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], edx
test eax, eax
je 0x100536c1
shl eax, 2
test ecx, ecx
jne 0x10053665
mov edx, eax
mov eax, dword [esp + 0x24]
mov ecx, eax
mov eax, dword [eax + 4]
call eax
xor ecx, ecx
mov dword [esp + 0x14], eax
test eax, eax
mov edi, 0x40
mov esi, eax
cmovne edi, ecx
mov dword [esp + 0x34], edi
jne 0x1005368f
mov dword [esp + 0x20], edi
mov edx, esi
mov dword [esp + 0x14], edx
test edi, edi
jne 0x100538f3
jmp 0x100536da
push edx
push eax
mov eax, dword [esp + 0x2c]
lea edx, [ecx*4]
mov ecx, eax
mov eax, dword [eax + 0xc]
call eax
mov esi, eax
test esi, esi
jne 0x10053687
lea edi, [eax + 0x40]
jmp 0x100538ef
mov dword [esp + 0x14], esi
mov dword [esp + 0x34], edi
mov edx, dword [esp + 0x38]
movzx ecx, word [esp + 0x64]
mov ebx, dword [esp + 0x48]
movzx eax, dx
cmp eax, ecx
jbe 0x10053651
sub eax, ecx
shl eax, 2
push eax
lea eax, [esi + ecx*4]
push 0
push eax
call fcn.100eae50
mov eax, dword [esp + 0x40]
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x100536da
test edx, edx
je 0x100536d0
mov eax, dword [esp + 0x24]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
xor esi, esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x14], esi
xor eax, eax
xor ecx, ecx
cmp ax, word [ebx + 4]
jae 0x10053702
mov edx, ebp
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 0x100536f0
test ebp, ebp
je 0x10053713
mov eax, dword [esp + 0x24]
mov edx, ebp
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov eax, dword [ebx]
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x30], eax
mov dword [esp + 0x5c], eax
mov ax, word [ebx + 4]
mov word [esp + 0x64], ax
jmp 0x10053735
mov ax, word [esp + 0x64]
mov ecx, dword [esp + 0x68]
movzx ebx, ax
shl ebx, 4
lea esi, [ebx + 0xc]
cmp ecx, esi
jbe 0x10053762
mov eax, ecx
shr eax, 6
cmp eax, edi
jbe 0x10053756
mov esi, edi
shl esi, 6
jmp 0x10053758
mov esi, ecx
mov eax, 0x4000000
cmp esi, eax
cmovae esi, eax
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x20]
push eax
mov edx, esi
call fcn.10034f10
mov edi, dword [esp + 0x20]
mov dword [esp + 0x50], eax
test edi, edi
jne 0x100538ef
mov eax, dword [esp + 0x24]
lea edx, [edi + 0x28]
mov ecx, eax
mov eax, dword [eax + 4]
call eax
mov ecx, eax
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x100537aa
mov edx, dword [esp + 0x14]
lea edi, [eax + 0x40]
mov ebx, dword [esp + 0x1c]
jmp 0x100538fb
mov edx, dword [esp + 0x50]
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov edi, ecx
mov dword [esp + 0x20], 0
movups xmmword [ecx + 0x10], xmm0
mov dword [esp + 0x18], edi
movq qword [ecx + 0x20], xmm0
mov ecx, dword [esp + 0x30]
mov eax, ecx
shr eax, 0x18
mov byte [edx], al
mov eax, ecx
shr ecx, 8
shr eax, 0x10
mov byte [edx + 2], cl
mov cx, word [esp + 0x64]
mov byte [edx + 1], al
mov al, byte [esp + 0x5c]
mov byte [edx + 3], al
test cx, cx
je 0x10053859
movzx eax, cx
xor ecx, ecx
mov dword [esp + 0x18], edi
test eax, eax
je 0x1005380b
mov dword [esp + 0x18], edi
inc ecx
shr eax, 1
jne 0x10053806
dec ecx
mov eax, 1
shl eax, cl
shl eax, 4
sub ebx, eax
mov dword [esp + 0x38], 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 + 0x38]
shr eax, 8
mov byte [edx + 6], al
mov eax, dword [esp + 0x38]
mov byte [edx + 7], al
mov eax, ecx
shr eax, 8
mov byte [edx + 8], al
mov eax, ebx
shr eax, 8
mov byte [edx + 9], cl
mov cx, word [esp + 0x64]
mov byte [edx + 0xa], al
mov byte [edx + 0xb], bl
mov edi, dword [esp + 0x14]
push 0x10052010
push 4
movzx eax, cx
push eax
push edi
call fcn.100f6050
mov edx, dword [esp + 0x94]
add esp, 0x10
cmp edx, 1
jb 0x100538ea
cmp edx, esi
ja 0x100538ea
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x20]
push eax
call fcn.10034f10
mov edi, dword [esp + 0x20]
mov esi, eax
test edi, edi
jne 0x100538d8
mov edx, dword [esp + 0x6c]
mov ecx, ebp
call fcn.10034a90
mov edi, eax
test edi, edi
jne 0x100538d8
lea edi, [eax + 7]
cmp dword [ebp + 0x14], eax
je 0x100538ca
mov edx, dword [ebp]
mov eax, dword [ebp + 0x1c]
test edx, edx
je 0x100538c3
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov dword [ebp], 0
mov dword [ebp + 0x20], 0
mov dword [ebp + 0x24], 0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jmp 0x10053901
mov edi, 8
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
xor esi, esi
mov ebp, dword [esp + 0x24]
test eax, eax
je 0x1005391a
mov edx, dword [esp + 0x10]
mov ecx, ebp
mov eax, dword [ebp + 8]
call eax
mov edx, dword [esp + 0x14]
jmp 0x10053926
mov eax, dword [esp + 0x50]
mov dword [esp + 0x50], eax
mov dword [esp + 0x18], ecx
test edx, edx
je 0x10053931
mov eax, dword [ebp + 8]
mov ecx, ebp
call eax
test esi, esi
je 0x1005393e
mov eax, dword [ebp + 8]
mov edx, esi
mov ecx, ebp
call eax
test ebx, ebx
je 0x1005397b
movzx ebx, word [esp + 0x90]
test ebx, ebx
je 0x10053970
mov esi, dword [esp + 0x1c]
add esi, 8
mov edx, dword [esi]
test edx, edx
je 0x10053962
mov eax, dword [ebp + 8]
mov ecx, ebp
call eax
mov dword [esi], 0
add esi, 0xc
sub ebx, 1
jne 0x10053955
mov edx, dword [esp + 0x1c]
mov ecx, ebp
mov eax, dword [ebp + 8]
call eax
test edi, edi
je 0x100539ac
mov eax, dword [esp + 0x50]
test eax, eax
je 0x10053990
mov edx, eax
mov ecx, ebp
mov eax, dword [ebp + 8]
call eax
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x100539ac
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x100539a3
mov ecx, ebx
call eax
mov esi, dword [ebp + 8]
mov edx, ebx
mov ecx, ebp
call esi
pop esi
mov eax, edi
pop edi
pop ebp
pop ebx
add esp, 0x188
ret 8