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

Disassembly:
sub esp, 0x58
push ebx
push ebp
mov ebp, dword [esp + 0x64]
mov eax, dword [ebp]
push esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x10], eax
xor eax, eax
push edi
xor edi, edi
cmp dword [esp + 0x78], edi
setne al
movzx ecx, byte [eax + esi + 0x19]
cmp ecx, edi
mov dword [esp + 0x44], eax
mov eax, dword [esi + eax*4 + 0x1c]
mov dword [esp + 0x2c], ecx
je 0x551173
cmp eax, edi
jne 0x551173
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x28]
push edx
push esi
push eax
push ebp
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x24], edi
call fcn.005491b0
add esp, 0x14
test eax, eax
jne 0x551112
cmp dword [esi + 0x14], edi
mov dword [esp + 0x6c], edi
jle 0x550e65
mov eax, 3
mov dword [esp + 0x58], 0x5fdc24
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], 0x5f4658
mov dword [esp + 0x64], eax
lea esp, [esp]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x550901
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax + ecx*4]
jmp 0x550908
mov edx, dword [esp + 0x74]
mov edx, dword [edx + 0x24]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x550929
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x6c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx + 0xc]
lea eax, [eax + eax*2]
mov ecx, dword [ecx + eax*8]
jmp 0x55092e
mov ecx, 0x5fdc20
lea eax, [edx + edx*2]
mov edx, dword [esp + 0x74]
mov edx, dword [edx]
mov edx, dword [edx + 0xc]
add eax, eax
add eax, eax
add eax, eax
test ecx, ecx
mov edx, dword [eax + edx]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], edx
mov eax, ecx
je 0x55096f
cmp byte [ecx], 0
je 0x550968
lea ebx, [ebx]
add eax, 1
cmp byte [eax], 0
jne 0x550960
sub eax, ecx
and eax, 0x3fffffff
test edx, edx
mov dword [esp + 0x4c], eax
mov eax, edx
je 0x55098f
cmp byte [edx], 0
je 0x550988
mov edi, edi
add eax, 1
cmp byte [eax], 0
jne 0x550980
sub eax, edx
and eax, 0x3fffffff
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], eax
mov eax, dword [ebp]
push 1
push 0x1a
push eax
lea eax, [esp + 0x5c]
call fcn.00546a00
mov esi, dword [ebp]
add esp, 0xc
test eax, eax
mov dword [esp + 0x34], eax
jne 0x5509ca
push eax
push esi
call fcn.00541350
push 0
push esi
call fcn.00541350
add esp, 0x10
jmp 0x5509d1
mov esi, eax
call fcn.00539350
mov ecx, dword [ebp]
push 1
push 0x1a
push ecx
lea eax, [esp + 0x54]
call fcn.00546a00
mov esi, dword [ebp]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x550a01
push eax
push esi
call fcn.00541350
push edi
push esi
call fcn.00541350
add esp, 0x10
jmp 0x550a08
mov esi, edi
call fcn.00539350
mov edx, dword [ebp]
push 1
push 0x1a
push edx
lea eax, [esp + 0x64]
call fcn.00546a00
mov esi, dword [ebp]
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x550a38
push eax
push esi
call fcn.00541350
push ebx
push esi
call fcn.00541350
add esp, 0x10
jmp 0x550a3f
mov esi, ebx
call fcn.00539350
mov esi, dword [ebp]
mov ecx, 0x30
call fcn.0053d980
mov esi, eax
test esi, esi
mov dword [esp + 0x30], esi
je 0x550a73
push 0x30
push 0
push esi
call fcn.005b5540
add esp, 0xc
mov byte [esi], 0x76
mov word [esi + 0x1e], 0xffff
mov dword [esi + 0x2c], 1
mov ecx, dword [esp + 0x30]
mov eax, ebx
mov ebx, dword [ebp]
call fcn.00546b50
mov esi, dword [ebp]
mov ecx, 0x30
call fcn.0053d980
mov esi, eax
test esi, esi
je 0x550ab1
push 0x30
push 0
push esi
call fcn.005b5540
add esp, 0xc
mov byte [esi], 0x4c
mov word [esi + 0x1e], 0xffff
mov dword [esi + 0x2c], 1
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov ebx, dword [ebp]
mov ecx, esi
call fcn.00546b50
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov eax, esi
call fcn.00546be0
cmp dword [esp + 0x78], 0
mov dword [esp + 0x18], eax
je 0x550c96
mov eax, dword [ebp]
push 1
push 0x1a
push eax
lea eax, [esp + 0x54]
call fcn.00546a00
mov esi, dword [ebp]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x550b11
push eax
push esi
call fcn.00541350
push edi
push esi
call fcn.00541350
add esp, 0x10
jmp 0x550b18
mov esi, edi
call fcn.00539350
mov ecx, dword [ebp]
push 1
push 0x1a
push ecx
lea eax, [esp + 0x6c]
call fcn.00546a00
mov esi, dword [ebp]
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x550b48
push eax
push esi
call fcn.00541350
push ebx
push esi
call fcn.00541350
add esp, 0x10
jmp 0x550b4f
mov esi, ebx
call fcn.00539350
mov esi, dword [ebp]
mov ecx, 0x30
call fcn.0053d980
mov esi, eax
test esi, esi
mov dword [esp + 0x30], esi
je 0x550b83
push 0x30
push 0
push esi
call fcn.005b5540
add esp, 0xc
mov byte [esi], 0x76
mov word [esi + 0x1e], 0xffff
mov dword [esi + 0x2c], 1
mov ecx, dword [esp + 0x30]
mov eax, ebx
mov ebx, dword [ebp]
call fcn.00546b50
mov edx, dword [ebp]
push 1
push 0x1a
push edx
lea eax, [esp + 0x54]
call fcn.00546a00
mov esi, dword [ebp]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x550bc1
push eax
push esi
call fcn.00541350
push edi
push esi
call fcn.00541350
add esp, 0x10
jmp 0x550bc8
mov esi, edi
call fcn.00539350
mov eax, dword [ebp]
push 1
push 0x1a
push eax
lea eax, [esp + 0x64]
call fcn.00546a00
mov esi, dword [ebp]
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x550bf8
push eax
push esi
call fcn.00541350
push ebx
push esi
call fcn.00541350
add esp, 0x10
jmp 0x550bff
mov esi, ebx
call fcn.00539350
mov esi, dword [ebp]
mov ecx, 0x30
call fcn.0053d980
mov esi, eax
test esi, esi
mov dword [esp + 0x34], esi
je 0x550c33
push 0x30
push 0
push esi
call fcn.005b5540
add esp, 0xc
mov byte [esi], 0x76
mov word [esi + 0x1e], 0xffff
mov dword [esi + 0x2c], 1
mov ecx, dword [esp + 0x34]
mov eax, ebx
mov ebx, dword [ebp]
call fcn.00546b50
mov esi, dword [ebp]
mov ecx, 0x30
call fcn.0053d980
mov esi, eax
test esi, esi
je 0x550c71
push 0x30
push 0
push esi
call fcn.005b5540
add esp, 0xc
mov byte [esi], 0x46
mov word [esi + 0x1e], 0xffff
mov dword [esi + 0x2c], 1
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov ebx, dword [ebp]
mov ecx, esi
call fcn.00546b50
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, esi
call fcn.00546be0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
cmp eax, 6
je 0x550e4d
cmp eax, 9
jne 0x550d66
cmp dword [esp + 0x78], 0
je 0x550e4d
mov ecx, dword [ebp]
push 1
push 0x1a
push ecx
lea eax, [esp + 0x54]
call fcn.00546a00
mov esi, dword [ebp]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x550ce7
push eax
push esi
call fcn.00541350
push edi
push esi
call fcn.00541350
add esp, 0x10
jmp 0x550cee
mov esi, edi
call fcn.00539350
mov edx, dword [ebp]
push 1
push 0x1a
push edx
lea eax, [esp + 0x6c]
call fcn.00546a00
mov esi, dword [ebp]
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x550d1e
push eax
push esi
call fcn.00541350
push ebx
push esi
call fcn.00541350
add esp, 0x10
jmp 0x550d25
mov esi, ebx
call fcn.00539350
mov esi, dword [ebp]
mov ecx, 0x30
call fcn.0053d980
mov esi, eax
test esi, esi
je 0x550d55
push 0x30
push 0
push esi
call fcn.005b5540
add esp, 0xc
mov byte [esi], 0x76
mov word [esi + 0x1e], 0xffff
mov dword [esi + 0x2c], 1
mov eax, ebx
mov ebx, dword [ebp]
mov ecx, esi
call fcn.00546b50
jmp 0x550df4
cmp eax, 8
jne 0x550da5
mov eax, dword [esp + 0x74]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
mov eax, dword [esp + 0x3c]
mov eax, dword [edx + eax + 4]
test eax, eax
push 0
push 0
je 0x550d94
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call fcn.0054ecc0
add esp, 0x10
jmp 0x550df6
xor edi, edi
lea eax, [edi + 0x62]
mov ecx, ebp
call fcn.00546bb0
add esp, 8
jmp 0x550df6
mov esi, dword [ebp]
mov ecx, 0x30
call fcn.0053d980
mov esi, eax
test esi, esi
je 0x550dd5
push 0x30
push 0
push esi
call fcn.005b5540
add esp, 0xc
mov byte [esi], 0x62
mov word [esi + 0x1e], 0xffff
mov dword [esi + 0x2c], 1
test esi, esi
mov edi, dword [ebp]
jne 0x550def
push esi
push edi
call fcn.00541350
push esi
push edi
call fcn.00541350
add esp, 0x10
jmp 0x550df4
call fcn.00539350
mov eax, esi
mov edx, dword [esp + 0x1c]
mov ecx, eax
mov eax, ebp
call fcn.00547280
test eax, eax
mov dword [esp + 0x1c], eax
je 0x550e4d
cmp dword [esp + 0x50], 0
mov ecx, dword [eax]
mov eax, dword [eax + 0xc]
mov esi, dword [ebp]
lea edx, [ecx + ecx*4]
lea ebx, [eax + edx*4 - 0x14]
jne 0x550e25
xor esi, esi
jmp 0x550e4a
mov edi, dword [esp + 0x38]
lea ecx, [edi + 1]
call fcn.0053d980
mov esi, eax
test esi, esi
je 0x550e4a
mov ecx, dword [esp + 0x50]
push edi
push ecx
push esi
call fcn.005b74f0
add esp, 0xc
mov byte [esi + edi], 0
mov dword [ebx + 4], esi
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
add eax, 1
cmp eax, dword [edx + 0x14]
mov dword [esp + 0x6c], eax
jl 0x5508f0
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
push eax
push esi
call fcn.00532d60
mov ecx, dword [esp + 0x7c]
mov edx, dword [ecx]
mov ecx, dword [edx]
add esp, 8
test ecx, ecx
mov dword [esp + 0x3c], ecx
mov eax, ecx
je 0x550e9f
cmp byte [ecx], 0
je 0x550e98
mov edi, edi
add eax, 1
cmp byte [eax], 0
jne 0x550e90
sub eax, ecx
and eax, 0x3fffffff
cmp dword [esp + 0x2c], 6
mov dword [esp + 0x24], eax
jne 0x550f83
mov dword [esp + 0x60], ecx
push 0x38
push esi
mov ecx, str.foreign_key_constraint_failed
mov dword [esp + 0x6c], eax
call fcn.00546b00
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x6c], ebx
je 0x550ed4
mov byte [ebx + 1], 2
mov ecx, 0x40
mov edi, esi
call fcn.0053d980
mov esi, eax
test esi, esi
je 0x550f1d
push 0x40
push 0
push esi
call fcn.005b5540
mov word [esi + 2], 1
movsx eax, word [esi]
add esp, 0xc
push eax
push 1
push edi
mov eax, esi
call fcn.00542470
add esp, 0xc
cmp byte [edi + 0x1e], 0
mov esi, eax
je 0x550f21
push esi
mov esi, edi
call fcn.0053a0a0
add esp, 4
xor esi, esi
jmp 0x550f4f
movsx eax, word [esi]
lea ecx, [eax*8]
sub ecx, eax
push edi
lea eax, [esp + 0x64]
lea ebx, [esi + ecx*8 - 0x30]
call fcn.00542110
mov dword [ebx + 4], eax
push edi
xor eax, eax
call fcn.00542110
mov dword [ebx], eax
mov ebx, dword [esp + 0x74]
add esp, 8
mov edx, dword [esp + 0x18]
push 0
push 0
push 0
push 0
push 0
push 0
push edx
push esi
mov ecx, ebx
xor edx, edx
mov eax, ebp
call fcn.00547280
push ebp
call fcn.005496a0
add esp, 0x24
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], 0
jmp 0x550f85
mov edi, esi
mov ebx, dword [esp + 0x24]
mov al, byte [edi + 0xea]
add ebx, 0x4d
mov ecx, ebx
mov esi, edi
mov byte [esp + 0x6c], al
mov byte [edi + 0xea], 0
call fcn.0053d980
mov esi, eax
test esi, esi
mov dword [esp + 0x20], esi
je 0x550fbc
push ebx
push 0
push esi
call fcn.005b5540
add esp, 0xc
test esi, esi
mov dword [esp + 0x38], esi
je 0x5510b5
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
lea ebx, [eax + 0x24]
mov dword [eax + 0x1c], ebx
push ecx
mov dword [ebx + 0x10], ecx
mov ecx, dword [esp + 0x40]
lea eax, [ebx + 0x28]
push ecx
push eax
mov dword [ebx + 0xc], eax
call fcn.005b74f0
mov edx, dword [esp + 0x24]
push 0
push 1
push edx
push edi
call fcn.0054ecc0
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x38]
push 1
push eax
push edi
call fcn.005413f0
mov ecx, dword [esp + 0x50]
push 1
push ecx
push edi
mov dword [ebx + 0x18], eax
call fcn.00547190
add esp, 0x34
cmp dword [esp + 0x10], 0
mov dword [ebx + 8], eax
je 0x5510b9
mov esi, dword [ebp]
mov ecx, 0x30
call fcn.0053d980
mov esi, eax
test esi, esi
je 0x55105b
push 0x30
push 0
push esi
call fcn.005b5540
add esp, 0xc
mov byte [esi], 0x13
mov word [esi + 0x1e], 0xffff
mov dword [esi + 0x2c], 1
test esi, esi
mov ebp, dword [ebp]
jne 0x551079
mov edx, dword [esp + 0x10]
push edx
push ebp
call fcn.00541350
push esi
push ebp
call fcn.00541350
add esp, 0x10
jmp 0x55109a
mov eax, dword [esp + 0x10]
mov ecx, 0x100
mov dword [esi + 8], eax
test word [eax + 2], cx
je 0x551095
or word [esi + 2], cx
mov eax, dword [eax + 0x14]
mov dword [esi + 0x14], eax
call fcn.00539350
push 0
push 1
push esi
push edi
mov dword [esp + 0x20], esi
call fcn.0054ecc0
mov ecx, dword [esp + 0x30]
add esp, 0x10
mov dword [ecx + 0xc], eax
jmp 0x5510b9
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
mov dl, byte [esp + 0x6c]
push eax
push edi
mov byte [edi + 0xea], dl
call fcn.00541350
mov ecx, dword [esp + 0x18]
push ecx
push edi
call fcn.00541350
mov edx, dword [esp + 0x2c]
push edx
call fcn.00539490
mov esi, dword [esp + 0x3c]
add esp, 0x14
test esi, esi
je 0x5510ff
push esi
push edi
call fcn.0053ab30
push esi
push edi
call fcn.00532d60
add esp, 0x10
cmp byte [edi + 0x1e], 1
jne 0x55111c
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
call fcn.00542870
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x58
ret
mov eax, dword [esp + 0x2c]
cmp eax, 6
je 0x55113b
cmp eax, 9
jne 0x551136
cmp dword [esp + 0x78], 0
jne 0x551136
mov byte [ebx], 0x6a
jmp 0x55113e
mov byte [ebx], 0x6b
jmp 0x55113e
mov byte [ebx], 0x74
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x70]
cmp dword [esp + 0x78], 0
mov dword [ebx + 4], eax
mov edx, dword [ecx + 0x40]
mov dword [eax + 0x14], edx
mov ecx, dword [ecx + 0x40]
mov edx, dword [esp + 0x74]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x44]
mov dword [edx + ecx*4 + 0x1c], eax
setne dl
add dl, 0x6a
mov byte [eax + 8], dl
mov eax, dword [esp + 0x38]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret