Function at 0x553860
Capabilities:
Check for software breakpoints

Disassembly:
sub esp, 0x34
push ebx
mov ebx, dword [esp + 0x3c]
push ebp
push esi
mov ebp, ecx
push edi
mov dword [esp + 0x28], ebp
mov edi, 0xfffffffe
mov esi, 0xfffffffe
mov ax, word [ebx]
mov cx, word [ebx + 2]
add ax, di
add cx, si
mov word [esp + 0x14], ax
mov word [esp + 0x16], cx
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x24]
push eax
mov ecx, 0x81a800
mov dword [esp + 0x28], edx
call fcn.005453b0
mov eax, dword [eax + 0x44]
cmp eax, 0xcd
jl 0x5538ba
cmp eax, 0xe8
jle 0x5538c8
inc esi
cmp esi, 3
jl 0x55387b
inc edi
cmp edi, 3
jge 0x5538fd
jmp 0x553876
mov cx, word [ebx]
mov dx, word [ebx + 2]
add cx, di
add dx, si
mov word [esp + 0x48], cx
lea ecx, [esp + 0x48]
mov word [esp + 0x4a], dx
mov eax, dword [esp + 0x48]
push ecx
mov ecx, ebp
mov dword [esp + 0x4c], eax
call fcn.00554170
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 4
movsx eax, word [ebx + 2]
movsx edx, word [ebx]
shl eax, 9
add eax, edx
js 0x553923
cmp eax, 0x40000
jge 0x553923
mov ecx, dword [0x81a938]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x553923
mov edi, eax
jmp 0x553930
mov edx, dword [ebx]
mov edi, 0xa575f0
mov dword [0xa57614], edx
mov eax, dword [edi + 0x140]
mov dword [esp + 0x14], 0
test ah, 5
jne 0x553a88
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x14]
and eax, 7
mov si, word [eax*4 + 0x839d82]
lea ecx, [eax*4 + 0x839d80]
mov eax, dword [esp + 0x48]
mov dx, word [eax]
add si, word [eax + 2]
add dx, word [ecx]
movsx eax, si
movsx edi, dx
shl eax, 9
add eax, edi
mov word [esp + 0x18], dx
mov word [esp + 0x1a], si
js 0x5539a2
cmp eax, 0x40000
jge 0x5539a2
mov edi, dword [0x81a938]
mov eax, dword [edi + eax*4]
test eax, eax
je 0x5539a2
mov edi, eax
jmp 0x5539b0
mov eax, dword [esp + 0x18]
mov edi, 0xa575f0
mov dword [0xa57614], eax
mov eax, dword [edi + 0x140]
test ah, 5
jne 0x553a88
mov bx, word [ecx + 2]
mov bp, word [ecx]
add bx, si
add bp, dx
movsx eax, bx
movsx edx, bp
shl eax, 9
add eax, edx
mov word [esp + 0x1c], bp
mov word [esp + 0x1e], bx
js 0x5539fb
cmp eax, 0x40000
jge 0x5539fb
mov edx, dword [0x81a938]
mov eax, dword [edx + eax*4]
test eax, eax
je 0x5539fb
mov edi, eax
jmp 0x553a09
mov eax, dword [esp + 0x1c]
mov edi, 0xa575f0
mov dword [0xa57614], eax
mov eax, dword [edi + 0x140]
mov esi, 0x500
test esi, eax
jne 0x553a88
mov dx, word [ecx]
mov cx, word [ecx + 2]
add cx, bx
add dx, bp
movsx eax, cx
mov word [esp + 0x22], cx
mov word [esp + 0x20], dx
movsx ecx, dx
shl eax, 9
add eax, ecx
js 0x553a54
cmp eax, 0x40000
jge 0x553a54
mov edx, dword [0x81a938]
mov eax, dword [edx + eax*4]
test eax, eax
je 0x553a54
mov edi, eax
jmp 0x553a62
mov eax, dword [esp + 0x20]
mov edi, 0xa575f0
mov dword [0xa57614], eax
test dword [edi + 0x140], esi
jne 0x553a88
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
inc ecx
and ecx, 7
inc eax
cmp eax, 8
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], eax
jl 0x55394f
mov eax, dword [edi + 0x140]
mov ecx, eax
and ecx, 0x100
jne 0x553aa1
test ah, 4
je 0x553e60
test ecx, ecx
je 0x553abc
test al, 0x80
je 0x553ab1
mov eax, dword [edi + 0x24]
jmp 0x553b9d
mov edx, dword [edi + 0x2c]
mov eax, dword [edx + 0x24]
jmp 0x553b9d
and eax, 0x800
mov ebx, dword [edi + 0x24]
neg eax
sbb eax, eax
mov dword [esp + 0x24], ebx
and eax, 2
mov dword [esp + 0x20], 0
add eax, 2
mov dword [esp + 0x14], eax
and eax, 7
lea eax, [eax*4 + 0x839d80]
mov si, word [esp + 0x26]
mov dx, word [eax]
add si, word [eax + 2]
add dx, bx
movsx ebp, dx
movsx ecx, si
mov word [esp + 0x48], dx
mov word [esp + 0x4a], si
mov ebx, dword [esp + 0x48]
shl ecx, 9
add ecx, ebp
mov dword [esp + 0x24], ebx
js 0x553b2c
cmp ecx, 0x40000
jge 0x553b2c
mov ebp, dword [0x81a938]
mov ecx, dword [ebp + ecx*4]
test ecx, ecx
jne 0x553b3b
mov ecx, dword [esp + 0x48]
mov dword [0xa57614], ecx
mov ecx, 0xa575f0
test dword [ecx + 0x140], 0x400
je 0x553b5f
mov ecx, dword [esp + 0x20]
inc ecx
cmp ecx, 4
mov dword [esp + 0x20], ecx
jl 0x553ae8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffffc
and eax, 7
and eax, 7
lea ecx, [eax*4 + 0x839d80]
mov ax, word [eax*4 + 0x839d80]
add ax, dx
mov dx, word [ecx + 2]
add ax, word [ecx]
mov cx, word [ecx + 2]
add dx, si
add cx, dx
mov word [esp + 0x48], ax
mov word [esp + 0x4a], cx
mov eax, dword [esp + 0x48]
mov edi, dword [edi + 0x140]
push 0
and edi, 0x800
push 0
neg edi
sbb edi, edi
lea ecx, [esp + 0x34]
and edi, 6
mov dword [esp + 0x18], eax
call fcn.0042d4a0
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
movsx edx, si
mov ecx, dword [ebx + 0x120]
mov dword [esp + 0x2c], vtable.DynamicVectorClass_class_Cell_.0
cmp edx, ecx
mov dword [esp + 0x40], 0xa
mov dword [esp + 0x3c], 0
jl 0x553e38
mov eax, dword [ebx + 0x128]
movsx ebp, si
add eax, ecx
cmp ebp, eax
jg 0x553e38
movsx eax, word [esp + 0x12]
mov ecx, dword [ebx + 0x124]
cmp eax, ecx
jl 0x553e38
mov edx, dword [ebx + 0x12c]
add edx, ecx
cmp eax, edx
jg 0x553e38
mov ecx, dword [ebx + 0x138]
shl eax, 9
add eax, ebp
cmp dword [ecx + eax*4], 0
je 0x553ca0
test eax, eax
jl 0x553c55
cmp eax, 0x40000
jge 0x553c55
mov edx, dword [0x81a938]
mov eax, dword [edx + eax*4]
test eax, eax
je 0x553c55
mov ecx, eax
jmp 0x553c60
mov dword [0xa57614], esi
mov ecx, 0xa575f0
mov eax, dword [ecx + 0x38]
mov edx, dword [0xa3a890]
sub eax, edx
mov edx, dword [0xa55cfc]
inc eax
cmp eax, edx
je 0x553c7e
cmp eax, dword [0xa3ab98]
jne 0x553c87
cmp byte [ecx + 0x11a], 8
je 0x553ce8
cmp eax, dword [0xa3afac]
je 0x553c97
cmp eax, dword [0xa3a1a0]
jne 0x553ca0
cmp byte [ecx + 0x11a], 0xc
je 0x553ce8
mov eax, edi
and eax, 7
lea ecx, [eax*4 + 0x839d80]
mov ax, word [eax*4 + 0x839d80]
mov cx, word [ecx + 2]
add cx, word [esp + 0x12]
add ax, si
movsx edx, ax
mov word [esp + 0x4a], cx
mov ecx, dword [ebx + 0x120]
mov word [esp + 0x48], ax
mov esi, dword [esp + 0x48]
cmp edx, ecx
mov dword [esp + 0x10], esi
jge 0x553bf2
jmp 0x553e38
add edi, 0xfffffffc
mov dword [esp + 0x48], esi
and edi, 7
xor esi, esi
mov dword [esp + 0x14], edi
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call fcn.00565d30
test al, al
jne 0x553d0e
inc esi
cmp esi, 3
jl 0x553cf8
and edi, 7
lea edi, [edi*4 + 0x839d80]
mov cx, word [esp + 0x4a]
mov ax, word [esp + 0x48]
add cx, word [edi + 2]
add ax, word [edi]
movsx edx, cx
mov word [esp + 0x26], cx
mov word [esp + 0x24], ax
mov esi, dword [esp + 0x24]
movsx ecx, ax
mov eax, edx
mov dword [esp + 0x48], esi
shl eax, 9
add eax, ecx
js 0x553d63
cmp eax, 0x40000
jge 0x553d63
mov ebp, dword [0x81a938]
mov eax, dword [ebp + eax*4]
test eax, eax
je 0x553d63
mov ebp, eax
jmp 0x553d6e
mov dword [0xa57614], esi
mov ebp, 0xa575f0
mov eax, dword [ebx + 0x120]
cmp ecx, eax
jl 0x553e20
mov esi, dword [ebx + 0x128]
add esi, eax
cmp ecx, esi
jg 0x553e20
mov eax, dword [ebx + 0x124]
cmp edx, eax
jl 0x553e20
mov ecx, dword [ebx + 0x12c]
add ecx, eax
cmp edx, ecx
jg 0x553e20
mov esi, dword [ebp + 0x38]
mov ecx, dword [0xa3a890]
mov edx, dword [esp + 0x14]
sub esi, ecx
inc esi
push ebp
mov ecx, esi
call fcn.00553e70
test al, al
je 0x553d18
cmp esi, 0xffffffff
je 0x553e20
mov edx, dword [esp + 0x14]
mov cx, word [esp + 0x48]
add edx, 0xfffffffc
and edx, 7
add cx, word [edx*4 + 0x839d80]
lea eax, [edx*4 + 0x839d80]
mov dx, word [edx*4 + 0x839d82]
mov word [esp + 0x24], cx
add dx, word [esp + 0x4a]
xor esi, esi
mov word [esp + 0x26], dx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x48], eax
lea ecx, [esp + 0x48]
push ecx
mov ecx, ebx
call fcn.00565d30
test al, al
jne 0x553e20
inc esi
cmp esi, 3
jl 0x553e0a
lea edx, [esp + 0x10]
mov ecx, ebx
push edx
call fcn.00555870
mov eax, dword [0x821c8c]
mov byte [eax + 0xd7c], 1
mov ecx, ebx
call fcn.0054bf10
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], vtable.VectorClass_class_Cell_.0
test eax, eax
je 0x553e60
mov cl, byte [esp + 0x39]
test cl, cl
je 0x553e60
push eax
call fcn.0076d2d5
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 4