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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov ecx, dword [ebp + 0x20]
movzx edx, byte [ecx]
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x14], edx
mov edx, dword [ecx + 4]
push esi
mov dword [ebp - 0x10], edx
mov edx, dword [ebp + 0x1c]
push edi
mov edi, dword [eax + 8]
mov dword [ebp - 4], edi
test edx, edx
je 0x53ab3be
movzx edx, byte [edx + 1]
jmp 0x53ab3c0
xor edx, edx
cmp dword [ebp + 0x18], 0
mov dword [ebp - 0x1c], edx
jne 0x53ab3e3
test edx, edx
jne 0x53ab3e3
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
mov esi, edi
call fcn.053a11a0
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx]
mov edx, dword [ecx + 8]
mov dword [ebp - 0xc], ebx
test edx, edx
jne 0x53ab3fe
mov edx, dword [eax + 0x4c]
inc edx
mov dword [ecx + 8], edx
add dword [eax + 0x4c], ebx
jmp 0x53ab40c
mov esi, dword [eax + 0x4c]
add edx, ebx
cmp edx, esi
jle 0x53ab40c
add esi, ebx
mov dword [eax + 0x4c], esi
cmp dword [ebp + 0x14], 0
mov dword [ecx + 0xc], ebx
mov ecx, dword [ecx + 8]
mov dword [ebp - 8], ecx
jl 0x53ab47a
xor esi, esi
test ebx, ebx
jle 0x53ab4ab
mov eax, dword [edi + 0x20]
mov edx, dword [edi + 0x18]
mov dword [ebp - 0x20], eax
cmp dword [edx + 0x58], eax
jg 0x53ab43e
mov ebx, edi
call fcn.0539b0d0
test eax, eax
jne 0x53ab46f
mov ecx, dword [edi + 4]
inc dword [edi + 0x20]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp + 0x14]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp - 8]
mov dword [eax + 4], edx
lea edx, [esi + ecx]
mov byte [eax + 3], 0
mov dword [eax + 8], esi
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], 0
mov word [eax], 0x2e
inc esi
cmp esi, dword [ebp - 0xc]
jl 0x53ab425
mov ebx, dword [ebp - 0xc]
jmp 0x53ab4a8
mov ecx, dword [ebp - 0x14]
cmp ecx, 3
je 0x53ab4ab
cmp ecx, 5
je 0x53ab490
cmp ecx, 9
je 0x53ab490
xor ecx, ecx
jmp 0x53ab495
mov ecx, 1
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 8]
push eax
push edx
mov edx, dword [ebp + 0x10]
call fcn.053a2720
add esp, 8
mov eax, dword [ebp + 8]
cmp dword [ebp - 0x1c], 0
je 0x53ab866
mov edx, dword [ebp + 0x1c]
movzx ecx, byte [edx + 1]
dec ecx
je 0x53ab74a
dec ecx
je 0x53ab52e
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x24]
mov edi, dword [ebp + 8]
push eax
mov eax, dword [edx + 4]
push ebx
push ecx
push eax
call fcn.053a1080
add esp, 0x10
mov edi, dword [ebp - 4]
cmp dword [ebp + 0x18], 0
jne 0x53ab866
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0xc]
mov dword [ebp + 0x1c], edx
test edx, edx
jle 0x53ab866
cmp dword [ebp + 0x24], 0
je 0x53ab866
mov esi, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x58], esi
jg 0x53ab79d
mov ebx, edi
call fcn.0539b0d0
xor ecx, ecx
test eax, eax
jne 0x53ab7c4
mov edx, dword [ebp + 0x1c]
jmp 0x53ab79f
mov ecx, dword [eax + 0x4c]
lea esi, [ecx + 1]
add ecx, ebx
mov dword [eax + 0x4c], ecx
mov eax, dword [edi + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [edx + 8]
test eax, eax
je 0x53ab586
mov edi, dword [edi]
lea ecx, [esi + esi*4]
lea ebx, [eax + ecx*4]
movsx eax, byte [ebx + 1]
mov ecx, dword [ebx + 0x10]
call fcn.05388110
mov edx, dword [ebp - 4]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
mov byte [ebx], 0x9b
mov eax, dword [edx + 0x20]
mov ebx, dword [ebp - 0xc]
dec eax
cmp esi, eax
jne 0x53ab584
mov ecx, edx
mov dword [ecx + 0x20], eax
mov edi, ecx
jmp 0x53ab586
mov edi, edx
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx + 8]
test eax, eax
jns 0x53ab594
mov eax, dword [edi + 0x20]
dec eax
mov ecx, dword [edi]
cmp byte [ecx + 0x40], 0
je 0x53ab5a3
mov eax, 0x541d360
jmp 0x53ab5ac
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
lea eax, [eax + edx*4]
mov ecx, dword [ebp - 0x1c]
mov byte [eax], 0x1c
mov dword [eax + 4], 1
mov dword [eax + 8], ecx
mov eax, dword [edi + 0x20]
add eax, ebx
mov dword [ebp - 0x28], eax
mov dword [ebp + 0x1c], 0
test ebx, ebx
jle 0x53ab6fc
mov eax, dword [ebp - 8]
mov esi, ecx
sub eax, esi
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x20], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
push ecx
mov ecx, dword [edx + eax]
call fcn.053aa410
mov ecx, dword [edi + 0x18]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 0xc]
dec eax
add esp, 4
cmp dword [ebp + 0x1c], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x24], eax
jge 0x53ab63a
cmp dword [ecx + 0x58], eax
jg 0x53ab621
mov ebx, edi
call fcn.0539b0d0
test eax, eax
jne 0x53ab67a
mov eax, dword [ebp - 0x24]
inc dword [edi + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
lea eax, [eax + edx*4]
mov edx, dword [ebp - 0x28]
mov word [eax], 0x4e
jmp 0x53ab661
cmp dword [ecx + 0x58], eax
jg 0x53ab64a
mov ebx, edi
call fcn.0539b0d0
test eax, eax
jne 0x53ab67a
mov eax, dword [ebp - 0x24]
inc dword [edi + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
lea eax, [eax + edx*4]
mov edx, dword [ebp + 0x24]
mov word [eax], 0x4f
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x10], 0
mov dword [eax + 0xc], esi
add ecx, esi
mov dword [eax + 8], edx
mov dword [eax + 4], ecx
mov byte [eax + 3], 0
mov ebx, dword [edi + 4]
mov edx, dword [edi]
test ebx, ebx
je 0x53ab6c0
cmp byte [edx + 0x40], 0
jne 0x53ab6c0
mov edi, dword [edi + 0x20]
lea eax, [edi + edi*4 - 5]
mov ecx, dword [ebx + eax*4 + 0x10]
lea ebx, [ebx + eax*4]
movsx eax, byte [ebx + 1]
mov edi, edx
call fcn.05388110
xor eax, eax
mov dword [ebx + 0x10], eax
cmp dword [ebp + 0x14], eax
jne 0x53ab6b4
mov dword [ebx + 0x10], eax
mov byte [ebx + 1], al
jmp 0x53ab6cf
mov ecx, dword [ebp + 0x14]
mov dword [ebx + 0x10], ecx
mov byte [ebx + 1], 0xfc
jmp 0x53ab6cf
mov ecx, dword [ebp + 0x14]
mov eax, 0xfffffffc
mov edi, edx
call fcn.05388110
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x53ab6e4
mov eax, dword [eax + 0x20]
lea edx, [eax + eax*4]
mov byte [ecx + edx*4 - 0x11], 0x80
mov eax, dword [ebp + 0x1c]
add dword [ebp - 0x18], 0x18
mov edi, dword [ebp - 4]
inc eax
inc esi
mov dword [ebp + 0x1c], eax
cmp eax, dword [ebp - 0xc]
jl 0x53ab5e4
mov esi, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x58], esi
jg 0x53ab716
mov ebx, edi
call fcn.0539b0d0
test eax, eax
jne 0x53ab4e1
mov edx, dword [edi + 4]
inc dword [edi + 0x20]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xc]
dec ecx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], 0
mov word [eax], 0x21
jmp 0x53ab4e1
mov ebx, dword [edi + 4]
mov esi, dword [edx + 8]
test ebx, ebx
je 0x53ab4e1
mov edi, dword [edi]
lea edx, [esi + esi*4]
movsx eax, byte [ebx + edx*4 + 1]
mov ecx, dword [ebx + edx*4 + 0x10]
lea ebx, [ebx + edx*4]
call fcn.05388110
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 4]
mov byte [ebx], 0x9b
mov eax, dword [eax + 0x20]
dec eax
cmp esi, eax
jne 0x53ab4de
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x20], eax
mov edi, ecx
jmp 0x53ab4e1
xor ecx, ecx
inc dword [edi + 0x20]
lea eax, [esi + esi*4]
mov esi, dword [edi + 4]
lea eax, [esi + eax*4]
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 8], 0xffffffff
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x25
mov esi, dword [edi + 0x20]
mov edx, dword [edi + 0x18]
cmp dword [edx + 0x58], esi
jg 0x53ab7e5
mov ebx, edi
call fcn.0539b0d0
xor ecx, ecx
test eax, eax
je 0x53ab7e5
mov dword [ebp + 0x1c], 1
jmp 0x53ab80c
mov edx, dword [edi + 4]
inc dword [edi + 0x20]
lea eax, [esi + esi*4]
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0x1c]
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x86
mov dword [ebp + 0x1c], esi
mov esi, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x58], esi
jg 0x53ab824
mov ebx, edi
call fcn.0539b0d0
test eax, eax
jne 0x53ab848
xor ecx, ecx
mov eax, dword [edi + 4]
inc dword [edi + 0x20]
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov edx, dword [ebp + 0x24]
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x10
mov eax, dword [edi + 0x20]
mov ecx, dword [ebp + 0x1c]
cmp eax, ecx
jbe 0x53ab85c
mov edx, dword [edi + 4]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x18]
dec eax
mov dword [ecx + 0x5c], eax
mov eax, dword [ebp - 0x14]
dec eax
cmp eax, 0xc
ja case.0x53ab873.4
jmp dword [eax*4 + 0x53abee8]
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x13]
test cl, cl
jne 0x53ab88c
inc dword [eax + 0x4c]
mov esi, dword [eax + 0x4c]
jmp 0x53ab898
dec cl
movzx edx, cl
mov byte [eax + 0x13], cl
mov esi, dword [eax + edx*4 + 0x1c]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
push esi
push eax
push ecx
push 0x30
mov eax, edi
call fcn.0539c3d0
mov edx, dword [ebp - 0x10]
push esi
push edx
push 0x6b
mov eax, edi
call fcn.0539eea0
mov edx, dword [ebp + 8]
add esp, 0x1c
call fcn.0536fa50
jmp case.0x53ab873.4
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
push eax
push ecx
push edx
push 0x6c
mov eax, edi
call fcn.0539c3d0
add esp, 0x10
jmp case.0x53ab873.4
mov esi, dword [ebp + 8]
mov al, byte [esi + 0x13]
test al, al
jne 0x53ab8fa
inc dword [esi + 0x4c]
mov ebx, dword [esi + 0x4c]
mov dword [ebp + 0x20], ebx
jmp 0x53ab90b
dec al
mov byte [esi + 0x13], al
movzx eax, al
mov ecx, dword [esi + eax*4 + 0x1c]
mov dword [ebp + 0x20], ecx
mov ebx, ecx
mov eax, dword [edi + 0x20]
mov edx, dword [edi + 0x18]
mov dword [ebp + 0x1c], eax
cmp dword [edx + 0x58], eax
jg 0x53ab92a
mov ebx, edi
call fcn.0539b0d0
mov ebx, dword [ebp + 0x20]
test eax, eax
jne 0x53ab955
mov eax, dword [ebp + 0x1c]
mov ecx, dword [edi + 4]
inc dword [edi + 0x20]
mov edx, dword [ebp - 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp - 0xc]
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], 0
mov word [eax], 0x30
cmp dword [ebp - 0x14], 0xb
jne 0x53ab988
mov edx, dword [edi + 0x20]
mov eax, dword [ebp - 0x10]
push 0
push ebx
add edx, 4
inc eax
push edx
push eax
push 0x42
mov eax, edi
call fcn.0539ec90
mov eax, dword [ebp - 0x10]
add esp, 0x14
inc eax
push ebx
push eax
push 0x6b
mov eax, edi
call fcn.0539eea0
add esp, 0xc
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x53ab9a0
mov ecx, dword [ebp + 0xc]
push ebx
push ecx
push eax
push esi
call fcn.053a48a0
add esp, 0x10
jmp 0x53ab9fb
mov al, byte [esi + 0x13]
test al, al
jne 0x53ab9af
inc dword [esi + 0x4c]
mov esi, dword [esi + 0x4c]
jmp 0x53ab9bb
dec al
movzx edx, al
mov byte [esi + 0x13], al
mov esi, dword [esi + edx*4 + 0x1c]
mov eax, dword [ebp - 0x10]
push esi
push eax
push 0x45
mov eax, edi
call fcn.0539eea0
mov ecx, dword [ebp - 0x10]
add esp, 0xc
push esi
push ebx
push ecx
push 0x46
mov eax, edi
call fcn.0539c3d0
mov eax, dword [edi + 4]
add esp, 0x10
test eax, eax
je 0x53ab9f0
mov ecx, dword [edi + 0x20]
lea edx, [ecx + ecx*4]
mov byte [eax + edx*4 - 0x11], 8
mov edx, dword [ebp + 8]
call fcn.0536fa50
mov ebx, dword [ebp + 0x20]
test ebx, ebx
je case.0x53ab873.4
mov eax, dword [ebp + 8]
mov bl, byte [eax + 0x13]
cmp bl, 8
jae case.0x53ab873.4
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0x20]
xor eax, eax
lea ecx, [edx + 0x78]
lea ecx, [ecx]
cmp dword [ecx + 0xc], esi
je 0x53aba3d
inc eax
add ecx, 0x14
cmp eax, 0xa
jl 0x53aba20
movzx ecx, bl
mov dword [edx + ecx*4 + 0x1c], esi
inc byte [edx + 0x13]
jmp case.0x53ab873.4
mov byte [ecx + 6], 1
jmp case.0x53ab873.4
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x20]
mov eax, dword [edx + 8]
mov eax, dword [eax]
mov bl, byte [esi + 1]
inc esi
mov dword [ebp + 0x20], esi
call fcn.05375f80
test al, al
je 0x53aba76
test bl, bl
je 0x53aba7e
cmp al, 0x63
jge 0x53aba72
cmp bl, 0x63
jge 0x53aba72
mov al, 0x62
jmp 0x53aba80
mov al, 0x63
jmp 0x53aba80
test bl, bl
jne 0x53aba7e
mov al, 0x62
jmp 0x53aba80
add al, bl
mov byte [esi], al
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x53abaa3
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 0xc]
push ecx
push edx
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.053a48a0
add esp, 0x10
jmp case.0x53ab873.4
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x13]
test cl, cl
jne 0x53abab5
inc dword [eax + 0x4c]
mov esi, dword [eax + 0x4c]
jmp 0x53abac1
dec cl
mov byte [eax + 0x13], cl
movzx ecx, cl
mov esi, dword [eax + ecx*4 + 0x1c]
mov edx, dword [ebp + 0x20]
mov ebx, dword [ebp - 8]
push 1
push edx
push esi
push 1
push ebx
push 0x30
mov eax, edi
call fcn.0539ee30
mov edi, ebx
mov ebx, dword [ebp + 8]
mov ecx, 1
mov eax, ebx
call fcn.05375db0
mov eax, dword [ebp - 0x10]
push esi
push eax
mov eax, dword [ebp - 4]
push 0x6b
call fcn.0539eea0
add esp, 0x24
mov edx, ebx
call fcn.0536fa50
mov edi, dword [ebp - 4]
jmp 0x53abe85
mov ecx, dword [ebp - 0x10]
push ecx
push 1
push 0x19
mov eax, edi
call fcn.0539eea0
add esp, 0xc
jmp case.0x53ab873.4
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x53abb41
mov edx, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
push edx
mov edx, dword [ebp + 8]
push ecx
push eax
push edx
call fcn.053a48a0
add esp, 0x10
jmp case.0x53ab873.4
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 8]
mov edi, dword [ebp + 8]
push 1
push eax
call fcn.0539e5d0
mov edi, dword [ebp - 4]
add esp, 8
jmp 0x53abe85
cmp dword [ebp + 0x18], 0
je 0x53abbb4
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x13]
test cl, cl
jne 0x53abb75
inc dword [eax + 0x4c]
mov esi, dword [eax + 0x4c]
jmp 0x53abb81
dec cl
mov byte [eax + 0x13], cl
movzx ecx, cl
mov esi, dword [eax + ecx*4 + 0x1c]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
push esi
push edx
push eax
push 0x30
mov eax, edi
call fcn.0539c3d0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp + 8]
push esi
push ecx
push edx
push ebx
call fcn.053a48a0
add esp, 0x20
mov edx, ebx
call fcn.0536fa50
jmp case.0x53ab873.4
cmp dword [ebp - 0x14], 9
jne 0x53abbd2
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax + 4]
push ecx
push 0x16
mov eax, edi
call fcn.0539ef00
add esp, 8
jmp 0x53abe85
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
push ebx
push esi
push 0x23
mov eax, edi
call fcn.0539eea0
mov eax, dword [ebp + 8]
add esp, 0xc
mov ecx, ebx
mov edi, esi
call fcn.05375db0
mov edi, dword [ebp - 4]
jmp 0x53abe85
mov edx, dword [ebp + 0x20]
mov eax, dword [edx + 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x13]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], edx
test cl, cl
jne 0x53abc21
inc dword [eax + 0x4c]
mov ecx, dword [eax + 0x4c]
jmp 0x53abc2d
dec cl
mov byte [eax + 0x13], cl
movzx ecx, cl
mov ecx, dword [eax + ecx*4 + 0x1c]
mov esi, dword [eax + 0x40]
mov dword [ebp + 0x20], ecx
lea ecx, [edx + 2]
mov edx, dword [eax + 0x3c]
mov dword [ebp - 0x18], ecx
mov dword [ebp + 0x10], esi
cmp ecx, edx
jg 0x53abc50
lea ebx, [esi + ecx]
sub edx, ecx
mov dword [eax + 0x40], ebx
mov dword [eax + 0x3c], edx
jmp 0x53abc5e
mov edx, dword [eax + 0x4c]
lea esi, [edx + 1]
add ecx, edx
mov dword [ebp + 0x10], esi
mov dword [eax + 0x4c], ecx
add esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x2c], esi
inc esi
cmp ebx, 0xd
jne 0x53abc8b
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
push eax
push ecx
push 0
inc edx
push edx
push 0x42
mov eax, edi
call fcn.0539ec90
add esp, 0x14
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
push esi
push eax
push ecx
push 0x30
mov eax, edi
call fcn.0539c3d0
add esp, 0x10
cmp ebx, 0xd
jne 0x53abcc9
mov edx, dword [ebp - 0x10]
push esi
inc edx
push edx
push 0x6b
mov eax, edi
call fcn.0539eea0
mov eax, dword [edi + 4]
add esp, 0xc
test eax, eax
je 0x53abcc9
mov ecx, dword [edi + 0x20]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 - 0x11], 0x10
cmp dword [ebp - 0x1c], 0
mov dword [ebp + 0x1c], 0
jle 0x53abd4a
mov dword [ebp + 0x14], 0
lea ecx, [ecx]
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 8]
mov ecx, dword [ebp + 0x14]
movzx edx, word [ecx + eax + 0x14]
mov eax, dword [ebp - 8]
mov esi, dword [edi + 0x20]
lea ecx, [edx + eax - 1]
mov edx, dword [edi + 0x18]
mov dword [ebp - 0x24], ecx
cmp dword [edx + 0x58], esi
jg 0x53abd0e
mov ebx, edi
call fcn.0539b0d0
test eax, eax
jne 0x53abd3a
mov ecx, dword [edi + 4]
inc dword [edi + 0x20]
mov edx, dword [ebp - 0x24]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp + 0x10]
add ecx, dword [ebp + 0x1c]
mov byte [eax + 3], 0
mov dword [eax + 8], ecx
xor ecx, ecx
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x22
mov eax, dword [ebp + 0x1c]
add dword [ebp + 0x14], 0x18
inc eax
mov dword [ebp + 0x1c], eax
cmp eax, dword [ebp - 0x1c]
jl 0x53abce0
mov esi, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x58], esi
jg 0x53abd60
mov ebx, edi
call fcn.0539b0d0
test eax, eax
jne 0x53abd89
mov edx, dword [edi + 4]
inc dword [edi + 0x20]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x44
mov esi, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x58], esi
jg 0x53abd9f
mov ebx, edi
call fcn.0539b0d0
test eax, eax
jne 0x53abdcd
mov edx, dword [edi + 4]
inc dword [edi + 0x20]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x18]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0x20]
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], 0
mov word [eax], 0x30
mov esi, dword [edi + 0x20]
mov edx, dword [edi + 0x18]
cmp dword [edx + 0x58], esi
jg 0x53abde3
mov ebx, edi
call fcn.0539b0d0
test eax, eax
jne 0x53abe0c
mov ecx, dword [edi + 4]
inc dword [edi + 0x20]
mov edx, dword [ebp - 0x10]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp + 0x20]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x6b
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x53abe2e
mov ecx, dword [edi + 0x20]
cmp ecx, eax
jbe 0x53abe24
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + edx*4 + 8], ecx
mov ecx, dword [edi + 0x20]
mov edx, dword [edi + 0x18]
dec ecx
mov dword [edx + 0x5c], ecx
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x53abe61
mov edx, dword [ebp + 8]
mov bl, byte [edx + 0x13]
cmp bl, 8
jae 0x53abe61
xor eax, eax
lea ecx, [edx + 0x78]
cmp dword [ecx + 0xc], esi
je 0x53abede
inc eax
add ecx, 0x14
cmp eax, 0xa
jl 0x53abe45
movzx eax, bl
mov dword [edx + eax*4 + 0x1c], esi
inc byte [edx + 0x13]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov ecx, esi
call fcn.05375db0
cmp esi, dword [eax + 0x3c]
jle 0x53abe7c
mov dword [eax + 0x3c], esi
mov dword [eax + 0x40], edi
mov edi, dword [ebp - 4]
cmp dword [ebp + 0x18], 0
jne 0x53abed7
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 8]
mov dword [ebp + 8], ecx
test ecx, ecx
je 0x53abed7
mov esi, dword [edi + 0x20]
mov edx, dword [edi + 0x18]
cmp dword [edx + 0x58], esi
jg 0x53abeab
mov ebx, edi
call fcn.0539b0d0
test eax, eax
jne 0x53abed7
mov ecx, dword [ebp + 8]
mov edx, dword [edi + 4]
inc dword [edi + 0x20]
lea eax, [esi + esi*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0x28]
mov byte [eax + 3], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0xffffffff
mov dword [eax + 0x10], 0
mov word [eax], 0x87
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [ecx + 6], 1
jmp 0x53abe61